Обработка представлений СУБД MySQL

#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 , а не какой-то один способ. Без конкретики это обсуждение не может продолжаться.