У меня есть схема с рядом просмотров. Мне нужно проверить планы выполнения, чтобы убедиться, что соответствующие индексы на месте и используются.
Как мне это сделать?
Я предпочел бы не нужно копировать и вставлять его из show create view <viewname>
INTO explain
, особенно некоторые мнения построены на вершине других взглядов , и это будет довольно боль.
mysql
performance
execution-plan
view
Мэтт Фенвик
источник
источник
select * from <view_name>
будет совпадать?Ответы:
Это то, что я впервые попробовал:
Очевидно, это не работает - это то же самое, что и делать
describe view_name
.Тем не менее,
select * from view_name
похоже, работает:источник
Используйте таблицу information_schema.views
Это сгенерирует EXPLAIN для всех видов
Это сгенерирует EXPLAIN для всех представлений в базе данных mydb.
Попробуйте!
ОБНОВЛЕНИЕ 2012-03-22 11:30 ПО ВОСТОЧНОМУ ВРЕМЕНИ
@ MattFenwick, ваш ответ намного проще, чем мой. Вот пример, который я опробовал на своем компьютере под управлением MySQL 5.5.12. Я запустил EXPLAIN для версии SELECT из вашего ответа и для EXPLAIN, сгенерированной из моего ответа:
Они оба разработали один и тот же план EXPLAIN. Я изменю свой ответ, чтобы реализовать ваш путь. Вы получаете +1 от меня, хотя это +2 для простоты. Вы должны пойти дальше и принять свой собственный ответ на этот.
Вот интересный факт о представлениях в MySQL: представление представлено в двух местах в базе данных information_schema
Это сгенерирует EXPLAIN для всех видов
или
Это сгенерирует EXPLAIN для всех представлений в базе данных mydb.
или
источник