Как часто представление базы данных обновляется в MySQL? - PullRequest
6 голосов
/ 17 сентября 2011

Предположим, у меня есть представление в MySQL:

CREATE VIEW blah AS
  SELECT columnA FROM tableA

Как часто это представление обновляется из базовой таблицы tableA?

1 Ответ

9 голосов
/ 17 сентября 2011

Мгновенно.Представления на самом деле не существуют как отдельные копии данных, они существуют как инструкции для перезаписи запросов.

То есть, когда вы select columnA from blah, MySQL внутренне переписывает это как select columnA from tableA.

В системах, которые поддерживают материализованные представления , база данных отвечает за их актуальность.

(Обратите внимание, что когда запрос достаточно сложен, MySQL внутренне материализует представление, простона время запроса. Это подробности реализации и лучше всего считается дефектом в оптимизаторе запросов MySQL. EXPLAIN можно использовать, чтобы увидеть, когда это происходит, но вы, скорее всего, заметите из-за ужасной производительности.)

...