Изгледът работи като таблица , но не е маса. То никога не съществува; това е само подготвен SQL израз, който се изпълнява, когато препращате към името на изгледа. IE:
CREATE VIEW foo AS
SELECT * FROM bar
SELECT * FROM foo
...е еквивалентно на изпълнение:
SELECT x.*
FROM (SELECT * FROM bar) x
MySQLDump никога няма да съдържа редове за вмъкване в изглед...
Това, за съжаление, е по (макар и съмнителен) дизайн. Има множество ограничения за изгледите на MySQL, които са документирани:http://dev.mysql.com/doc/refman/5.0/en/create-view.html
Така че, ако това е само въображаема таблица/подготвен израз, означава ли това, че теоретично има същата производителност (или дори по-малко) като нормална таблица/заявка?
Не.
Таблица може да има свързани индекси, които могат да направят извличането на данни по-бързо (на известна цена за вмъкване/актуализация). Някои бази данни поддържат "материализирани" изгледи, които са изгледи, които могат да имат индекси, приложени към тях - което не трябва да е изненада, че MySQL не поддържа предвид ограничената функционалност за преглед (която започна едва във v5 IIRC, много късно в играта).
Тъй като изгледът е извлечена таблица, производителността на изгледа е толкова добра, колкото и заявката, върху която е изграден. Ако тази заявка е гадна, проблемът с производителността ще бъде просто снежна топка... Това каза, когато се прави заявка за изглед - ако препратка към колона на изглед в клаузата WHERE не е обвита във функция (IE:WHERE v.column LIKE ...
,не WHERE LOWER(t.column) LIKE ...
), оптимизаторът може да избута критериите (наречени предикат) към оригиналната заявка, което я прави по-бърза.