Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Desempenho de visualizações do MySQL

Depende.


Depende totalmente do que você está vendo através da visualização. Mas provavelmente reduzindo seu esforço e dando maior desempenho. Quando a instrução SQL faz referência a uma exibição não indexada, o analisador e o otimizador de consulta analisam a origem da instrução SQL e da exibição e as resolvem em um único plano de execução. Não há um plano para a instrução SQL e um plano separado para a exibição.

Uma visualização não é compilada . É uma mesa virtual composta por outras mesas. Quando você o cria, ele não reside em algum lugar do seu servidor. As consultas subjacentes que compõem a exibição estão sujeitas aos mesmos ganhos ou perdas de desempenho do otimizador de consultas. Eu nunca testei o desempenho em uma exibição VS sua consulta subjacente, mas imagino que o desempenho possa variar um pouco. Você pode obter melhor desempenho em uma exibição indexada se os dados forem relativamente estáticos. Isso pode ser o que você está pensando talvez em termos de "compilado".

Vantagens das visualizações:

  1. Visualize os dados sem armazená-los no objeto.
  2. Restringir a visualização de uma tabela, ou seja, pode ocultar algumas colunas nas tabelas.
  3. Junte duas ou mais tabelas e mostre-as como um objeto para o usuário.
  4. Restringir o acesso de uma tabela para que ninguém possa inserir as linhas na tabela.

Veja estes links úteis:

  1. Desempenho da instrução VIEW vs. SQL
  2. Uma visualização é mais rápida que uma consulta simples?
  3. Visualizações do MySQL vs. consulta PHP
  4. As visualizações do MySQL são dinâmicas e eficientes?
  5. Visualização materializada vs. tabelas:Quais são as vantagens?
  6. Está consultando em uma visão mais lenta do que executar o SQL diretamente?
  7. Uma solução para os problemas de desempenho das visualizações TEMPTABLE
  8. Veja ganhos de desempenho usando exibições indexadas no SQL Server