Your SlideShare is downloading. ×
0
Perfomance em MySQL
Perfomance em MySQL
Perfomance em MySQL
Perfomance em MySQL
Perfomance em MySQL
Perfomance em MySQL
Perfomance em MySQL
Perfomance em MySQL
Perfomance em MySQL
Perfomance em MySQL
Perfomance em MySQL
Perfomance em MySQL
Perfomance em MySQL
Perfomance em MySQL
Perfomance em MySQL
Perfomance em MySQL
Perfomance em MySQL
Perfomance em MySQL
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Perfomance em MySQL

674

Published on

Published in: Entertainment & Humor
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
674
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Perfomance em MySQL Ellison Leão
  • 2. Conteúdo ● EXPLAIN neles! ● MySQL Pivot ● Boas práticas ● Baseado em fatos reais
  • 3. Antes de tudoCREATE TABLE exams (     pkey int(11) NOT NULL auto_increment,     name varchar(15),     exam int,     score int,    PRIMARY KEY (pkey) ); e mais alguns inserts..
  • 4. EXPLAIN● EXPLAIN antes de qualquer consulta, traz as informações de execução da mesma● Ótima ferramenta para otimização de consultas
  • 5. mysql> EXPLAIN SELECT pkey FROM exams
  • 6. ● select_type - mostra o tipo de select utilizado. tipos( SIMPLE, PRIMARY, etc..● table - mostra o nome da tabela de onde vem o resultado (para quando são efetuados JOINs entre tabelas);● type - tipo de join usado. Do melhor para o pior tipo temos: system, const, eq_ref, ref, fulltext, range, index, all;● possible_keys - indica quais os índices que o MySQL pode usar para encontrar resultados nesta tabela;● key - índice usado na consulta, ou NULL caso não tenham sido usados índices;● key_len - tamanho do índice usado, caso exista;● ref - coluna(s) usada(s) com a key para devolver resultados;● rows - número de registos que o MySQL tem de examinar para executar a consulta;● extra - informação adicional acerca de como o MySQL vai executar a consulta. Evite sempre o aparecimento de “using filesort” e “using temporary“.
  • 7. Um pouco mais complexoexemplo de explain em uma consulta no database eadsesipr
  • 8. MySQL Pivot ● Também chamado de Cross-Tabulation ● Agrupamento de vários campos em uma única linha ● Ideal para relatórios com bastante dados agregados
  • 9. mysql > select * from exams;
  • 10. E se quisessemos agrupar as notas de cada aluno em apenas uma linha?
  • 11. Pivot neles!SELECT name ,SUM(IF(exam=1,score,null)) as nota1 ,SUM(IF(exam=2,score,null)) as nota2 ,SUM(IF(exam=3,score,null)) as nota3 ,SUM(IF(exam=4,score,null)) as nota4FROM exams GROUP BY name
  • 12. Resultado
  • 13. Vantagens ● Organização ● Agrega grande quantidade de informação em uma única linha (gráficos?)Desvantagens ● Query um pouco mais complexa
  • 14. Boas práticas
  • 15. ● Não seja guloso. Peça apenas o necessário (evite SELECT *);● Os index são seus amigos ( cuidado com os excessos - indexes malcriados podem deixar a query mais lenta);● SEMPRE use o EXPLAIN para dissecar suas queries e melhorá-las.● Se puder, evite subconsultas.
  • 16. A query a seguir é baseada em fatos reais...
  • 17. Perguntas? :)
  • 18. Referências ● http://weevilgenius.net/2010/09/mysql-explain-reference/ ● http://en.wikibooks.org/wiki/MySQL/Pivot_table ● http://dev.mysql.com/doc/refman/5.0/en/explain.html ● http://www.mysqlperformanceblog.com/

×