MySQL Explique & SQL_NO_CACHE
Dicas MySQL

MySQL Explique & SQL_NO_CACHE


Original post: http://anothermysqldba.blogspot.com/2014/04/mysql-explain-sqlnocache.html

Então, hoje eu estava ajudando alguém com o seu desempenho de banco de dados e correu algumas consultas mal escritos. Agora, certamente, todo mundo comete erros, o objetivo é fazer tudo o que puder para evitá-los.

Assim, apenas um par de dicas úteis para fazer antes de deixar uma consulta solto em seu ambiente.

Sempre executar a consulta via explicar primeiro. Algo tão simples como fazer explicar primeiro confirmará sem erros (já que ele não será executado), e permitir que você otimizar a consulta.
Várias ligações já existem sobre como usar explicar:
  • http://ronaldbradford.com/blog/tag/explain/
  • http://www.mysqlperformanceblog.com/2014/02/03/percona-toolkit-collection-pt-visual-explain/
  • http://www.ustream.tv/recorded/15872720
  • https://www.youtube.com/watch?v=qaB85pMVNJU
  • https://dev.mysql.com/doc/refman/5.6/en/using-explain.html
  • http://www.sitepoint.com/using-explain-to-write-better-mysql-queries/
O objetivo é simples. Você quer chaves válidas nas possible_keys e chaves (não nulos) e quando se trata de key_len você não quer que cada mesa para ser 100s de linhas. Se você pode obter o primeiro key_len a ser 200 (apenas um número que eu escolhi como exemplo), então o seguinte para ser 5,4,3,2,1 e não mais 200, em seguida, sua consulta deve correr bem. Essa é uma afirmação muito simplista e de alto nível e eu sugiro que você revise os links listados para entender Explique mais. A consulta que eu vi hoje tinha 5 + junta e um sub-select (via uma junção foi melhor no onde declaração) e 200 + linhas para cada key_len. Alguns ajustes podem permitir sua consulta a cair entre 200 segundos para 1 segundo ou menos. Sempre, sempre, sempre se explicar.

A próxima dica, tentar testar suas consultas com SQL_NO_CACHE. Isso permite que você teste a consulta real e otimizá-lo da melhor maneira que puder. Uma vez que ela se torna em cache (se ele vai ser), então ele só vai correr muito mais rápido para você.
  • https://dev.mysql.com/doc/refman/5.6/en/select.html
  • http://ronaldbradford.com/blog/using-the-mysql-query-cache-effectively-2009-09-28/
Uma última nota ... Dê uma olhada nas dicas de desempenho de SQL para MySQL que existiam no local forja, mas agora estão em - https://wikis.oracle.com/pages/viewpage.action?pageId=27263381




loading...



Dicas MySQL








.