#php #mysql #database #views #database-performance
#php #mysql #База данных #Вид #база данных-производительность
Вопрос:
Я понимаю использование представлений MySQL, алгоритмы, преимущества и недостатки .. и т.д.
Единственное, чего я не могу понять, это как СУБД MySQL обрабатывает представления и обновляет данные представления?
Например:-
У нас есть три таблицы T1, T2 amp; T3 .. и у нас есть представление под названием V1, которое собирает данные из трех таблиц, и запрос под названием Q1, который выбирает некоторые данные из V1
-
Предположение № 1 (Все выполняется одновременно, сначала представление, затем запрос):
Выполняется Q1, поэтому сначала обновляется версия V1, затем возвращается результат.
-
Предположение № 2 (Представление обновляется после выполнения любой транзакции в связанных таблицах)
Транзакция вставки или удаления выполняется на T2, V1 обновляется, и всякий раз, когда выполняется Q1, результат возвращается из V1 (без обновления V1, поскольку в этом случае предполагается, что он постоянно обновляется).
Это мои предположения, кто-нибудь может прояснить этот момент для меня, как СУБД обрабатывает представления?
Большое вам спасибо
Комментарии:
1. Представление — это, по сути, запрос. Таким образом, каждый раз, когда вы используете представление, вы фактически выполняете запрос представления
2. Если вы не говорите о материализованных представлениях, то представление существует только как определение запроса, которое выполняется при каждом обращении к представлению …. данные, возвращаемые из запроса представления, вообще не сохраняются
3. Существуют различные способы выполнения и оптимизации
VIEW
, а не какой-то один способ. Без конкретики это обсуждение не может продолжаться.