2010-08-18 4 views
3

Я рассматривал возможность использования представлений MySQL для предоставления абстракции при извлечении данных из БД. Как я искал материал по этому вопросу, я наткнулся на this article, которая заканчивается:Рекомендации по производительности при использовании MySQL VIEWs

MySQL имеет долгий путь получения запросов с видом должным образом оптимизирован.

Статья взята с 2007 г. Действительно ли это применимо? Например: решил ли MySQL эти проблемы?

+0

К сожалению, плохие кодеры все еще существуют сегодня –

ответ

1

Представления MySQL отлично работают, но в большинстве случаев они плохо работают.

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

Часто сервер материализует весь вид в виде временной таблицы, что не очень полезно для хорошей производительности (если только в нем нет только очень небольшого количества строк).

Итак, если вы считаете, что план объяснения в порядке, без вида, с видом он может стать ужасным. Насколько я знаю, это все еще не разрешено в последней версии MySQL MySQL.

У вас могут быть виды, но не ожидайте достойной (то есть приемлемой) производительности.

Смежные вопросы