Monitoração de performance não é apenas uma tarefa para o pessoal de Operações, mas sim também para os Desenvolvedores de sistemas com alto desempenho. Manter o controle de como seu código impacta nas métricas de performance durante o ciclo de desenvolvimento é a chave para definição da estratégia de escalar sua arquitetura.
5. Portfolio Open Source (GPL)
• MySQL Database (Community Server) 5.5.28 GA e 5.6.8 RC
• MySQL Cluster (NDB Community) 7.2.8 GA
• MySQL Workbench Community Edition 5.2.44 GA
• MySQL Utilities (em Python)
• MySQL Connectors
•ODBC, Java, .Net, C, C++, PHP, OpenOffice
• MySQL Proxy 0.8.2 Alpha
• Documentação: livre para uso, não coberto pela GPL
• Forums
dev.mysql.com/downloads
5
6. MySQL Enterprise Edition
Mais produtividade, menores riscos e maior capacidade
para o MySQL.
Oracle Premier
Lifetime Support
MySQL Enterprise Oracle Product
Security Certifications/Integrations
MySQL Enterprise MySQL Enterprise
Audit Monitor/Query Analyzer
MySQL Enterprise MySQL Enterprise
Scalability Backup
MySQL Enterprise
MySQL Workbench
High Availability
6
7. Questões difíceis
… problemas de performance? … servidores down?
… queries lentas, custosas? … política de segurança, muda?
… onde, quando, como “tunar”? … produtividade de desenv./QA?
… problemas de replicação? … qual versão do MySQL rodar?
… os sistemas escalarão? … posso recuperar?
9. O Desenvolvedor MySQL
Correção de problemas em QA ou Produção (inclusive reescrita de queries
para otimização)
Responsabilidade sobre a performance geral da aplicação, além de outros
requisitos não funcionais
Otimização do esquema de dados
Monitoramento e ações corretivas
Criação e utilização correta de índices
Definir mecanismos eficientes de interação entre aplicação e BD
Ajuste de variáveis no MySQL Server (Teste Estresse)
#1 Identificar e melhorar queries que consomem muitos recursos
10. Identificar e Melhorar Queries
1. Seja “O Caçador” de Queries
•MySQL Query Analyzer
•Slow query log, SHOW PROCESSLIST
2. Aplique melhorias
•indexação, EXPLAIN
•reescrita de queries
•re-modelagem do esquema de dados
"No Braço” ou Via Ferramenta
13. Boas práticas para Melhorar Performance
•Não criar índices desnecessários
•Não criar indices com inicio idêntico
•Não usar toda string para os índices
•Não encapsule seus índices no WHERE
•Evite % no início do LIKE em um índice
•Thread Pool
•InnoDB
•Use Suporte Consultivo do Enterprise
http://dev.mysql.com/doc/refman/5.5/en/using-explain.html
15. MySQL Treinamento e Certificação
Treinamentos
Certificações
MySQL DBA MySQLDeveloper
MySQL Boot Camp MySQL Boot Camp
Accelerated Accelerated
MySQL Performance MySQL Performance
Tuning Boot Camp Tuning Boot Camp
Accelerated Accelerated
MySQL for Begginers MySQL for Begginers
MySQL for Database MySQL and PHP
Administrators Developing Dynamic
Web Applicationg
MySQL Performance
Tuning MySQL for Developers
MySQL High Availability MySQL Advanced Stored
Procedures
MySQL Cluster
Opcional
Necessário
http://education.oracle.com
16. Questões Difíceis, Soluções Reais
… problemas de performance? … servidores down?
• MySQL Enterprise Scalability • Oracle Premier 7x24 Support
• MySQL Enterprise Monitor, Advisors, Query Analyzer • MySQL Enterprise Monitor, Advisors
• MySQL Consultative Support • MySQL Enterprise High Availability
… queries lentas, custosas? … política de segurança, muda?
• MySQL Enterprise Monitor, Query Analyzer
• MySQL External Authentication
… onde, quando, como “tunar”? • MySQL Enterprise Monitor, Security Advisor
• MySQL Enterprise Monitor, Advisors, Query Analyzer
• MySQL Consultative Support
… produtividade de desenv./QA?
• MySQL Workbench SE
• MySQL Enterprise Monitor, Query Analyzer
… problemas de replicação?
• MySQL Enterprise Monitor, Replication Monitor … qual versão do MySQL rodar?
• Oracle Premier 7x24 Support • Oracle Premier 7x24 Support
… os sistemas escalarão? … posso recuperar?
• MySQL Enterprise Scalability
• MySQL Enterprise Backup
• MySQL Enterprise Monitor, Advisors, Query Analyzer
• MySQL Consultative Support
17. Obrigado!
Time MySQL Brasil
@MySQLBR meetup.com/MySQL-BR