Обновить представления MySQL? - PullRequest
10 голосов
/ 06 августа 2010

На работе мне постоянно говорят, что, когда вносятся изменения в базу данных MySQL, необходимо обновлять представления. Похоже, что принятое решение вручную входит в Workbench, щелкает правой кнопкой мыши и нажимает «Обновить все»

Это просто для очистки кеша? Или это перестраивает взгляды с нуля, или это полностью фиктивно? Похоже, они могут определить, когда представления не были «обновлены», и я не уверен, что они понимают это больше, чем «потому что вещи нужно обновлять, когда они меняются».

Если он просто очищает кэш, будет ли достаточно «FLUSH TABLES WITH READ LOCK»?

1 Ответ

20 голосов
/ 06 августа 2010

Представления не нужно обновлять при изменении данных . Когда вы запрашиваете их, они получают новейшие данные.

Их может потребоваться воссоздать, если ваша структура таблицы изменится:

Определение представления «заморожено» во время создания, поэтому последующие изменения в базовых таблицах не влияют на определение представления. Например, если представление определено как SELECT * для таблицы, новые столбцы, добавленные в таблицу позже, не становятся частью представления.

Источник

...