Eu tenho um esquema com várias visualizações. Preciso verificar os planos de execução para garantir que os índices apropriados estejam em vigor e sendo usados.
Como eu faço isso?
Prefiro não ter que copiar e colar a saída de show create view <viewname>
into explain
, especialmente porque algumas das exibições são construídas sobre outras exibições e isso seria uma dor de cabeça.
Use a tabela information_schema.views
Isso irá gerar o EXPLAIN para todas as visualizações
Isso gerará o EXPLAIN para todas as exibições no banco de dados mydb
De uma chance !!!
ATUALIZAÇÃO 2012-03-22 11:30 EDT
@MattFenwick, sua resposta é muito mais simples que a minha. Aqui está um exemplo que experimentei em meu PC executando o MySQL 5.5.12. Executei EXPLAIN na versão SELECT da sua resposta e no EXPLAIN gerado na minha resposta:
Ambos produziram o mesmo plano EXPLAIN. Vou mudar minha resposta para implementar o seu caminho. Você recebe +1 de mim, embora seja +2 pela simplicidade. Você deve seguir em frente e aceitar sua própria resposta nesta.
Aqui está um fato interessante sobre VIEWs no MySQL: Uma visão é representada em dois lugares no banco de dados information_schema
Isso irá gerar o EXPLAIN para todas as visualizações
ou
Isso gerará o EXPLAIN para todas as exibições no banco de dados mydb
ou
Isto é o que eu tentei primeiro:
Obviamente, isso não funciona - é o mesmo que fazer
describe view_name
.No entanto,
select * from view_name
parece funcionar: