Являются ли MySql динамичными и эффективными? - программирование
Подтвердить что ты не робот

Являются ли MySql динамичными и эффективными?

Я хочу создать представление таблицы, в которой будут выделены данные, соответствующие определенным критериям. Например, если у меня есть таблица с целыми значениями, я хочу, чтобы мое представление показывало строки, которые имеют значение больше 100. Я знаю, как добиться этого, создав представление на таблице, однако это динамический вид? Я тестировал это в MySQL и, похоже, это правда. Но если моя таблица имеет более 1000 строк, эффективна ли она? Будет ли представление "динамически" обновляться до любых изменений в исходной таблице?

4b9b3361

Ответ 1

В принципе, в MySQL существует в основном 2 типы просмотров.

  • Объединить представления

    Этот вид представления в основном просто перезаписывает ваши запросы с помощью представления SQL. Так что это короткая рука для написания запросов. Это не дает никаких реальных преимуществ для работы, но упрощает упрощение написания сложных запросов и упрощает техническое обслуживание (поскольку, если определение определения изменяется, вам не нужно изменять 100 запросов против представления, только одно определение).

  • Искушенные представления

    Этот тип представления создает временную таблицу с запросом из представления SQL. Он имеет все преимущества представления слияния, но также уменьшает время блокировки в таблицах представлений. Поэтому на высоконагруженных серверах он может иметь довольно значительное увеличение производительности.

Также существует тип вида "Undefined" (по умолчанию), который позволяет MySQL выбрать то, что, по его мнению, является лучшим типом во время запроса...

Но обратите внимание на то, что важно отметить, что MySQL не имеет поддержки материализованных представлений. Поэтому он не похож на Oracle, где сложное представление значительно увеличивает производительность запросов. Запросы представлений всегда выполняются в MySQL.

Что касается эффективности, то представления в MySQL не повышают или не снижают эффективность. Они могут облегчить вашу жизнь при написании и поддержании запросов. Я использовал представления на таблицах с сотнями миллионов строк, и они отлично работали...

Ответ 2

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