Поскольку мой проект был независимым от других проектов с помощью призмы, мне нужно было снять флажок «Только строить проекты запуска и зависимости от запуска» в «Инструменты» - «Параметры -> Проекты и решения ->« Сборка и запуск ».
Представление работает как таблица , но это не таблица. Его никогда не существует; это только подготовленный оператор 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 .. .
, not WHERE LOWER (t.column) LIKE ...
), оптимизатор может протолкнуть критерии (называемые предикатом) в исходный запрос, что ускорит его.