SlideShare ist ein Scribd-Unternehmen logo
1 von 44
<Insert Picture Here>
                            Profiling e Monitoramento
                        com MySQL Enterprise Monitor




                                             Marcos Trujillo
                                       marcos.trujillo@oracle.com


                                              Airton Lastori
                                        airton.lastori@oracle.com

                                                         dez-2011
agenda

Problemas cotidianos do DBA e Desenvolvedor
     Profiling e Monitoramento do MySQL
            MySQL Enterprise Edition
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?
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?
Profiling

In software engineering, profiling ("program profiling",
   "software profiling") is a form of dynamic program
   analysis that measures, for example, the usage of
   memory, the usage of particular instructions, or
   frequency and duration of function calls. The
   most common use of profiling information is to aid
   program optimization.
Responsabilidades comuns para BDs 1/2

Desenvolvedor/Arquiteto
 • definir mecanismos eficientes de interação entre aplicação e BD
 • dimensionamento/upgrade de hardware
 • responsabilidade sobre a performance geral da aplicação,
   além de outros requisitos não funcionais
 • correção de problemas em QA ou Produção (inclusive
   reescrita de queries para otimização)
SysAdmin/DBA
 •   otimização do esquema de dados
 •   criação e utilização correta de índices
 •   ajuste de variáveis no MySQL Server (tuning)
 •   monitoramento e ações corretivas
 •   manutenção dos indices e dados
Responsabilidades comuns para BDs 2/2

     AMBOS papéis
     • modelagem do esquema de dados mais eficiente
     • identificar e melhorar queries que consomem muitos
       recursos
normalmente a razão #1
de perdas de performance



                     Lembre-se:
       o objetivo do profiling é otimizar!
Otimização de Queries em 2 passos
1. seja um incansável caçador de Queries
   lentas mais executadas
    •   MySQL Query Analyzer
        •   maior produtividade, menor overhead
    •   Recursos nativos
        •   slow query log, mysqldumpslow > SHOW
            PROCESSLIST > select_scan, select_full_join


2. aplique melhorias
    •   indexação, EXPLAIN
    •   reescrita de queries
    •   re-modelagem do esquema de dados
Otimização de Queries em 2 passos
1. seja um incansável caçador de Queries
   lentas mais executadas
    •   MySQL Query Analyzer
        •   maior produtividade, menor overhead
    •   Recursos nativos
        •   slow query log, mysqldumpslow > SHOW
            PROCESSLIST > select_scan, select_full_join


2. aplique melhorias
    •   indexação, EXPLAIN
    •   reescrita de queries
    •   re-modelagem do esquema de dados
MySQL Enterprise Monitor: Query Analyzer
Navegando na execução da Query
                   Exemplo query exec
                    com substitução de
                         variável

                    Stack Trace com
                     informações do
                       código-fonte


                               EXPLAIN completo
                               para otimização de
                                     índices
Integração com MyOracleSupport
MySQL Support Diagnostic Reports
• Coleta e empacota rapidamente dados do MySQL, SO,
  diagnósticos de Queries em um relatório para o Oracle Support
• Acompanhamento de tickets do Oracle Support (SRs)
• Tempo de resposta acelerado, menor risco
Otimização de Queries em 2 passos
1. seja um incansável caçador de Queries
   lentas mais executadas
    •   MySQL Query Analyzer
        •   maior produtividade, menor overhead
    •   Recursos nativos
        •   slow query log, mysqldumpslow > SHOW
            PROCESSLIST > select_scan, select_full_join


2. aplique melhorias
    •   indexação, EXPLAIN
    •   reescrita de queries
    •   re-modelagem do esquema de dados
Índices e EXPLAIN
1. Índices são intensamente utilizados
     •   operações de Filtro
     •   operações Join
     •   operações Sort
2. EXPLAIN mostra como (e se) estão sendo utilizados
3. Boas práticas
     •   não criar índices desnecessários (degrada performance
         de escrita)
     •   não criar indices com inicio idêntico (leading part)
     •   não usar toda string para os índices (apenas uma parte
         inicial já basta)
         •   16 bytes ou menos
         •   com mais de 32 bytes devem ter cuidados especiais (como
             cache próprio MyISAM)
         •   crie colunas com hashes e indexe-os ao invés de string
             longas



    http://dev.mysql.com/doc/refman/5.5/en/using-explain.html
Reescreva Queries lentas
1. Utilize IN clause
     •   SELECT ... WHERE idx IN(1,23,345,456)
     •   muito mais rápido que JOINS
     •   ex. 1k-2k vezes para 80k items
2. Não encapsule seus índices no WHERE
     •   Mantenha índices isolados no lado esquerdo da
         condição
     •   Select ... Where func(idx) = 20 [index ignored]
     •   Select .. Where idx = otherfunc(20) [may use index]
3. Evite % no início do LIKE em um índice
     •   Select ... Where idx LIKE(„ABC%‟) pode usar índice
     •   Select ... Where idx LIKE(„%XYZ‟) fará full table scan
4. Use UNION ALL quando apropriado
     •   default é UNION DISTINCT
5. Entenda Left/Right JOINS e use apropriadamente


     http://dev.mysql.com/doc/refman/5.5/en/query-speed.html
Re-modelagem do esquema de dados
1. Storage Engine (tipo de tabela) adequado
     • InnoDB
     • MyISAM
     • Outros: Memory, Archive ...

2. Tipos de dados e tamanhos corretos
     •     Tamanhos menores, melhor performance
     •     Não use 255 VARCHAR para tudo
     •     Considere o uso de ENUM e SET
     •     Temporary Tables e Caches estouram tamanho total
     •     PROCEDURE ANALYZE

3. Comprima strings longas
     •     COMPRESS e UNCOMPRESS
     •     No caso de InnoDB, mais importante para versões
           anteriros a 5.5

    http://www.mysql.com/why-mysql/white-papers/mysql_5.5_perf_myisam_innodb.php
              http://dev.mysql.com/doc/refman/5.5/en/procedure-analyse.html
MySQL Workbench SE
análise automática e documentação do modelo de dados
Bônus: boas práticas gerais 1/2
1.   atue nos gargalos
2.   não tenha vergonha de perguntar: Google, Forums, MyOracleSupport
3.   monitore, seja pró ativo e aceite alguns conselhos: Advisors
4.   nunca faça mudanças no ambiente de produção, tenha um
     bom conjunto de testes
       1.   benchmark: DBT2, SysBench, mysqlslap, mybench
       2.   testes automatizados com queries reais: general log, MySQL
            Proxy, TCP Dump
       3.   simule carga que se aproxima do ambiente de produção
5. defina objetivos e uma base de comparação (antes e depois)
       1.   aumentar Transações Por Segundo (TPS)
       2.   aumentar usuários simultâneos
       3.   diminuir IO time wait
6. mude apenas uma coisa por vez
       1.   identifique um possível conjunto de mudanças
       2.   tente mudá-las separadamente
       3.   tente combinações
Bônus: boas práticas gerais 2/2
7. monitore os resultados
      •    performance das queries
          •    foco no gargalo - mais executadas e que tomam maior
               tempo
          •    Throughput
          •    média dos tempos das queries melhor que tempos únicos
               das queries
      •    CPU
      •    IO
      •    Network bandwidth
8. documente e salve os resultados, mantenha seu histórico para
   seu uso e da equipe
MySQL Enterprise Monitor
implementa boas práticas com muita produtividade
Links
MySQL Essentials Webinars (Partes de 1 a 7)
mysql.com/news-and-events/web-seminars/mysql-essentials.html


MySQL Training (incluindo MySQL Performance Tuning)
education.oracle.com


MySQL Performance Forum
forums.mysql.com/list.php?24


MySQL White Papers
dev.mysql.com/why-mysql/white-papers


MySQL Enterprise Monitor (trial 30 dias)
edelivery.oracle.com
Subscrições MySQL


                                                                Cluster
                                       Enterprise               Carrier
Valor Agregado




                                        Edition                  Grade
                     Standard
                                                                 Enterprise +
                      Edition
                                           Standard +



                  • MySQL Database    • Plug-Ins
                  • Premier Support   • Enterprise Monitor
                  • Workbench SE      • Enterprise Backup    • Cluster Manager
Oracle Suporte para o MySQL




* MySQL Premier Support – 5 anos, começando pelo GA
Suporte Consultivo MySQL




DBA e
Desenvolvedores
My Oracle Support
Extensões Comerciais


• Enterprise Security
  • Plug-In: MySQL External Authentication


• Enterprise Scalability
  • Plug-In: MySQL Thread Pool
Windows Authentication
 Connect as

  1. MyDomainjoe faz login         App
     na aplicação com senha
     Windows
                                           Connector
Connect as                                                         Connect as

 3. A aplicação conecta-se                                         2. MyDomainjoe é
    ao MySQL com usuário                                              autenticado via
    win_joe.                                                          LDAP/AD
Connected                     Connect as

                              4. Tokens são verificados, o
                                 usuário win_joe é autenticado
                                 com Windows login, porém
                                           Authenticate
               Windows           com privilégios do MySQL.
                                                                 LDAP/AD
                Auth
               CREATE USER win_joe
                IDENTIFIED WITH authentication_windows
               AS ‘joe';
Gestão Padrão do Thread Pool

             Clientes Externos

                                 Gestão Padrão     Execução das Conexões das Threads
                                 doThread Pool


                                   Conexões /
                                   Declarações
                                  atribuídas aos
                                 Threads durante
                                  sua existência



Clientes Internos



• Conexões são atribuídas a 1 thread durante a existência da Conexão.
• A mesma thread é usada para todas as declarações de execução (single
  threaded)
Com o Thread Pool Habilitado

            Clientes Externos

                                      Thread Pool        Execução das Conexões das Threads
                                     Grupo Thread 1
                                                           Grupo Thread 1
                                     Threads 1 - 4096

                                     Grupo Thread 2        Grupo Thread 2
                                   Threads 4097 - 8193
                                                           Grupo Thread N
                                     Grupo Thread N
                                     Threads 8194 - N

Clientes Internos

• Pool contém um número de Grupo de Threads(default = 16), cada um gerencia até 4096
  threads reusáveis
• Cada conexão é atribuída ao grupo de thread via round robin

                     mantém a performance em altas cargas de
                               usuários/conexões
Comparativo com/sem Thread Pool
                                 MySQL 5.5 Sysbench OLTP Leitura/Escrita
                         8,000

                         7,000
Transações por segundo




                                                                                MySQL Enterprise Edition
                         6,000
                                                                                                 ComThread Pool
                         5,000

                         4,000

                         3,000

                         2,000

                         1,000

                            0                                                   MySQL Community Server
                                                                                                  Sem Thread Pool



                                       Conexões Simultâneas no Banco de Dados        MySQL 5.5.16
                                                                                     Oracle Linux 6.1, Unbreakable Kernel 2.6.32
                                                                                     2 sockets, 24 cores, 2 X 12-core
                                                                                     Intel(R) Xeon(R) X5670 2.93GHz CPUs

                           20x Melhor Escalabilidade comThread Pool                  72GB DDR3 RAM
                                                                                     2 X LSI SCSI Disk (MR9261-8i) (597GB)
Comparativo com/sem Thread Pool
        MySQL 5.5 Sysbench OLTP Apenas Leitura
    12,000

    10,000                                               MySQL Enterprise Edition
                                                                           ComThread Pool
     8,000

     6,000
T




     4,000
                                                         MySQL Community Server
     2,000
                                                                            SemThread Pool

        0



                Conexões Simultâneas no Banco de Dados       MySQL 5.5.16
                                                             Oracle Linux 6.1, Unbreakable Kernel 2.6.32
                                                             2 sockets, 24 cores, 2 X 12-core
                                                             Intel(R) Xeon(R) X5670 2.93GHz CPUs
                                                             72GB DDR3 RAM
     3x Melhor Escalabilidade com Thread Pool                2 X LSI SCSI Disk (MR9261-8i) (597GB)
MySQL Enterprise Monitor
• Visão única e consolidada em
  todo o ambiente MySQL
• Auto-descoberta dos servidores
  MySQL, topologias de
  replicação
• Regras personalizáveis de
  monitorização e alertas
• Identificação de problemas
  antes que eles ocorram
• Reduz o risco de inatividade
• Facilita “scale out” sem exigir
  mais DBAs
                                    Assistente virtual do DBA MySQL!


                                               http://mysql.com/trials/
MySQL Enterprise Monitor: Query Analyzer
MySQL Enterprise Backup

• Anteriormente “InnoDB Hot Backup”
• Online, non-locking backup & recovery
    • Tables, Indexes
    • Server, database, ou object-level
•   Backups Lógico e Físico
•   Backups Completos ou Incrementais
•   Point-in-time recovery
•   Backups Comprimidos
•   Também oferece backup e recuperação para MyISAM
•   Multi-plataforma (Windows, Linux, Unix)
•   Certificado para Oracle Secure Backup (SBT 2.0)
Backups




Backups são até 3.5x mais rápidos do que mysqldump
Restores




        Restore é até 16x mais rápido do que mysqldump
- mysqldump performance não é linear (mais tables/indexes impacta na performance)
- MySQL Enterprise performance é quase linear
Compressão do Backup




O tamanho do Backup é reduzido de 65% até 93%
Mais sobre MySQL
MySQL Treinamento e Certificação

       Treinamentos
  MySQL DBA           MySQLDeveloper               Certificações
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          MySQL Advanced
    Availability       Stored Procedures

  MySQL Cluster
                                                                   Opcional
                                                                   Necessário
                         http://education.oracle.com
07-dez-2011


Registre-se:
 http://bit.ly/usLQoD
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
Obrigado!
                                       Time MySQL Brasil




marcos.trujillo@oracle.com   marcelo.t.souza@oracle.com     ana.guiselini@oracle.com   airton.lastori@oracle.com




                         @MySQLBR                         meetup.com/MySQL-BR

Weitere ähnliche Inhalte

Was ist angesagt?

MySQL e Oracle para DBAs
MySQL e Oracle para DBAsMySQL e Oracle para DBAs
MySQL e Oracle para DBAsAirton Lastori
 
Oracle Real Application Clusters
Oracle Real Application ClustersOracle Real Application Clusters
Oracle Real Application Clusters4Partner
 
Replicação MySQL e PHP
Replicação MySQL e PHPReplicação MySQL e PHP
Replicação MySQL e PHPMySQL Brasil
 
Guia essencial para embarcar o MySQL em seu produto
Guia essencial para embarcar o MySQL em seu produtoGuia essencial para embarcar o MySQL em seu produto
Guia essencial para embarcar o MySQL em seu produtoMySQL Brasil
 
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...MySQL Brasil
 
GUOB - Passa-a-passo para migração do Oracle Database 11g
GUOB - Passa-a-passo para migração do Oracle Database 11gGUOB - Passa-a-passo para migração do Oracle Database 11g
GUOB - Passa-a-passo para migração do Oracle Database 11gRodrigo Almeida
 
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQLRecursos e Benefícios do MySQL
Recursos e Benefícios do MySQLMySQL Brasil
 
Oracle Premier Support para MySQL
Oracle Premier Support para MySQLOracle Premier Support para MySQL
Oracle Premier Support para MySQLMySQL Brasil
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Brasil
 
Desvendando Oracle Exadata X2-2
Desvendando Oracle Exadata X2-2Desvendando Oracle Exadata X2-2
Desvendando Oracle Exadata X2-2Rodrigo Almeida
 
Oracle Exadata
Oracle ExadataOracle Exadata
Oracle ExadataiMasters
 
IBTA - Oracle Database Security
IBTA - Oracle Database SecurityIBTA - Oracle Database Security
IBTA - Oracle Database SecurityRodrigo Almeida
 
DBA became DMA for Oracle Exadata X2-2
DBA became DMA for Oracle Exadata X2-2DBA became DMA for Oracle Exadata X2-2
DBA became DMA for Oracle Exadata X2-2Rodrigo Almeida
 
MySQL e Oracle - GUOB Tech Day 2012
MySQL e Oracle - GUOB Tech Day 2012MySQL e Oracle - GUOB Tech Day 2012
MySQL e Oracle - GUOB Tech Day 2012MySQL Brasil
 
Oracle Exadata - Consolidação & Migração
Oracle Exadata - Consolidação & MigraçãoOracle Exadata - Consolidação & Migração
Oracle Exadata - Consolidação & MigraçãoRodrigo Almeida
 
Otimizando um banco de dados Oracle para Exadata
Otimizando um banco de dados Oracle para ExadataOtimizando um banco de dados Oracle para Exadata
Otimizando um banco de dados Oracle para ExadataRodrigo Almeida
 
Arquiteturas de referência MySQL
Arquiteturas de referência MySQLArquiteturas de referência MySQL
Arquiteturas de referência MySQLMySQL Brasil
 

Was ist angesagt? (19)

MySQL e Oracle para DBAs
MySQL e Oracle para DBAsMySQL e Oracle para DBAs
MySQL e Oracle para DBAs
 
Oracle Real Application Clusters
Oracle Real Application ClustersOracle Real Application Clusters
Oracle Real Application Clusters
 
Replicação MySQL e PHP
Replicação MySQL e PHPReplicação MySQL e PHP
Replicação MySQL e PHP
 
My sql apresentação
My sql apresentaçãoMy sql apresentação
My sql apresentação
 
Guia essencial para embarcar o MySQL em seu produto
Guia essencial para embarcar o MySQL em seu produtoGuia essencial para embarcar o MySQL em seu produto
Guia essencial para embarcar o MySQL em seu produto
 
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...
 
GUOB - Passa-a-passo para migração do Oracle Database 11g
GUOB - Passa-a-passo para migração do Oracle Database 11gGUOB - Passa-a-passo para migração do Oracle Database 11g
GUOB - Passa-a-passo para migração do Oracle Database 11g
 
Recursos e Benefícios do MySQL
Recursos e Benefícios do MySQLRecursos e Benefícios do MySQL
Recursos e Benefícios do MySQL
 
Oracle Premier Support para MySQL
Oracle Premier Support para MySQLOracle Premier Support para MySQL
Oracle Premier Support para MySQL
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geral
 
Desvendando Oracle Exadata X2-2
Desvendando Oracle Exadata X2-2Desvendando Oracle Exadata X2-2
Desvendando Oracle Exadata X2-2
 
Oracle Exadata
Oracle ExadataOracle Exadata
Oracle Exadata
 
IBTA - Oracle Database Security
IBTA - Oracle Database SecurityIBTA - Oracle Database Security
IBTA - Oracle Database Security
 
DBA became DMA for Oracle Exadata X2-2
DBA became DMA for Oracle Exadata X2-2DBA became DMA for Oracle Exadata X2-2
DBA became DMA for Oracle Exadata X2-2
 
MySQL e Oracle - GUOB Tech Day 2012
MySQL e Oracle - GUOB Tech Day 2012MySQL e Oracle - GUOB Tech Day 2012
MySQL e Oracle - GUOB Tech Day 2012
 
Oracle Exadata - Consolidação & Migração
Oracle Exadata - Consolidação & MigraçãoOracle Exadata - Consolidação & Migração
Oracle Exadata - Consolidação & Migração
 
Otimizando um banco de dados Oracle para Exadata
Otimizando um banco de dados Oracle para ExadataOtimizando um banco de dados Oracle para Exadata
Otimizando um banco de dados Oracle para Exadata
 
IDC Summit 2015 - DBaaS
IDC Summit 2015 - DBaaSIDC Summit 2015 - DBaaS
IDC Summit 2015 - DBaaS
 
Arquiteturas de referência MySQL
Arquiteturas de referência MySQLArquiteturas de referência MySQL
Arquiteturas de referência MySQL
 

Ähnlich wie MySQL Profiling com Enterprise Monitor

MySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicaçõesMySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicaçõesMySQL Brasil
 
MySQL - o banco de dados open source mais popular do mundo
MySQL - o banco de dados open source mais popular do mundoMySQL - o banco de dados open source mais popular do mundo
MySQL - o banco de dados open source mais popular do mundoMySQL Brasil
 
MySQL Enterprise (outubro-2011)
MySQL Enterprise (outubro-2011)MySQL Enterprise (outubro-2011)
MySQL Enterprise (outubro-2011)MySQL Brasil
 
MySQL: o banco de dados open source mais popular do mundo
MySQL: o banco de dados open source mais popular do mundoMySQL: o banco de dados open source mais popular do mundo
MySQL: o banco de dados open source mais popular do mundoMySQL Brasil
 
Realmente devo pensar na versão Enterprise do MySQL?
Realmente devo pensar na versão Enterprise do MySQL?Realmente devo pensar na versão Enterprise do MySQL?
Realmente devo pensar na versão Enterprise do MySQL?Juliano de Oliveira Falcao
 
Performance no MongoDB - TDC 2017 | Florianópolis
Performance no MongoDB - TDC 2017 | FlorianópolisPerformance no MongoDB - TDC 2017 | Florianópolis
Performance no MongoDB - TDC 2017 | FlorianópolisJefferson Martins de Andrade
 
MySQL e Oracle para Desenvolvedores
MySQL e Oracle para DesenvolvedoresMySQL e Oracle para Desenvolvedores
MySQL e Oracle para DesenvolvedoresMySQL Brasil
 
Uso estratégico do MySQL para empresas de TI: Novidades e Futuro
Uso estratégico do MySQL para empresas de TI: Novidades e FuturoUso estratégico do MySQL para empresas de TI: Novidades e Futuro
Uso estratégico do MySQL para empresas de TI: Novidades e Futuroassertimarilia
 
Novidades do Universo MySQL Agosto 2014
Novidades do Universo MySQL Agosto 2014Novidades do Universo MySQL Agosto 2014
Novidades do Universo MySQL Agosto 2014MySQL Brasil
 
Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014MySQL Brasil
 
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEUso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEMarco Antonio Maciel
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Marcos William Valentini
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Marcos William Valentini
 
MySQL e Oracle para DBAs
MySQL e Oracle para DBAsMySQL e Oracle para DBAs
MySQL e Oracle para DBAsMySQL Brasil
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Brasil
 
Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15MySQL Brasil
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Brasil
 

Ähnlich wie MySQL Profiling com Enterprise Monitor (20)

MySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicaçõesMySQL no Windows: implementação eficiente de novas aplicações
MySQL no Windows: implementação eficiente de novas aplicações
 
MySQL no Windows
MySQL no WindowsMySQL no Windows
MySQL no Windows
 
MySQL - o banco de dados open source mais popular do mundo
MySQL - o banco de dados open source mais popular do mundoMySQL - o banco de dados open source mais popular do mundo
MySQL - o banco de dados open source mais popular do mundo
 
MySQL Enterprise (outubro-2011)
MySQL Enterprise (outubro-2011)MySQL Enterprise (outubro-2011)
MySQL Enterprise (outubro-2011)
 
MySQL: o banco de dados open source mais popular do mundo
MySQL: o banco de dados open source mais popular do mundoMySQL: o banco de dados open source mais popular do mundo
MySQL: o banco de dados open source mais popular do mundo
 
Apresentação MySQL Enterprise
Apresentação MySQL EnterpriseApresentação MySQL Enterprise
Apresentação MySQL Enterprise
 
Realmente devo pensar na versão Enterprise do MySQL?
Realmente devo pensar na versão Enterprise do MySQL?Realmente devo pensar na versão Enterprise do MySQL?
Realmente devo pensar na versão Enterprise do MySQL?
 
Performance no MongoDB - TDC 2017 | Florianópolis
Performance no MongoDB - TDC 2017 | FlorianópolisPerformance no MongoDB - TDC 2017 | Florianópolis
Performance no MongoDB - TDC 2017 | Florianópolis
 
MySQL e Oracle para Desenvolvedores
MySQL e Oracle para DesenvolvedoresMySQL e Oracle para Desenvolvedores
MySQL e Oracle para Desenvolvedores
 
Uso estratégico do MySQL para empresas de TI: Novidades e Futuro
Uso estratégico do MySQL para empresas de TI: Novidades e FuturoUso estratégico do MySQL para empresas de TI: Novidades e Futuro
Uso estratégico do MySQL para empresas de TI: Novidades e Futuro
 
Novidades do Universo MySQL Agosto 2014
Novidades do Universo MySQL Agosto 2014Novidades do Universo MySQL Agosto 2014
Novidades do Universo MySQL Agosto 2014
 
Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014
 
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEUso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 
MySQL e Oracle para DBAs
MySQL e Oracle para DBAsMySQL e Oracle para DBAs
MySQL e Oracle para DBAs
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geral
 
Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geral
 
Trabalho de sgbd
Trabalho de sgbdTrabalho de sgbd
Trabalho de sgbd
 

Mehr von MySQL Brasil

MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017MySQL Brasil
 
MySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e UberMySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e UberMySQL Brasil
 
Alta disponibilidade com MySQL Enterprise
Alta disponibilidade com MySQL EnterpriseAlta disponibilidade com MySQL Enterprise
Alta disponibilidade com MySQL EnterpriseMySQL Brasil
 
MySQL Roadmap NoSQL HA Fev17
MySQL Roadmap NoSQL HA Fev17MySQL Roadmap NoSQL HA Fev17
MySQL Roadmap NoSQL HA Fev17MySQL Brasil
 
Segurança no MySQL
Segurança no MySQLSegurança no MySQL
Segurança no MySQLMySQL Brasil
 
5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQLMySQL Brasil
 
Alta disponibilidade no MySQL 5.7 GUOB 2016
Alta disponibilidade no MySQL 5.7 GUOB 2016Alta disponibilidade no MySQL 5.7 GUOB 2016
Alta disponibilidade no MySQL 5.7 GUOB 2016MySQL Brasil
 
MySQL 5.7 como Document Store
MySQL 5.7 como Document StoreMySQL 5.7 como Document Store
MySQL 5.7 como Document StoreMySQL Brasil
 
Enabling digital transformation with MySQL
Enabling digital transformation with MySQLEnabling digital transformation with MySQL
Enabling digital transformation with MySQLMySQL Brasil
 
Alta Disponibilidade no MySQL 5.7 para aplicações em PHP
Alta Disponibilidade no MySQL 5.7 para aplicações em PHPAlta Disponibilidade no MySQL 5.7 para aplicações em PHP
Alta Disponibilidade no MySQL 5.7 para aplicações em PHPMySQL Brasil
 
Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7MySQL Brasil
 
NoSQL no MySQL 5.7
NoSQL no MySQL 5.7NoSQL no MySQL 5.7
NoSQL no MySQL 5.7MySQL Brasil
 
10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em StartupsMySQL Brasil
 
Novidades do MySQL para desenvolvedores ago15
Novidades do MySQL para desenvolvedores ago15Novidades do MySQL para desenvolvedores ago15
Novidades do MySQL para desenvolvedores ago15MySQL Brasil
 
Estratégias de Segurança e Gerenciamento para MySQL
Estratégias de Segurança e Gerenciamento para MySQLEstratégias de Segurança e Gerenciamento para MySQL
Estratégias de Segurança e Gerenciamento para MySQLMySQL Brasil
 
Serviços Escaláveis e de Alta Performance com MySQL e Java
Serviços Escaláveis e de Alta Performance com MySQL e JavaServiços Escaláveis e de Alta Performance com MySQL e Java
Serviços Escaláveis e de Alta Performance com MySQL e JavaMySQL Brasil
 
MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15MySQL Brasil
 
Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...
Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...
Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...MySQL Brasil
 

Mehr von MySQL Brasil (20)

MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017
 
MySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e UberMySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e Uber
 
MySQL 8.0.1 DMR
MySQL 8.0.1 DMRMySQL 8.0.1 DMR
MySQL 8.0.1 DMR
 
Alta disponibilidade com MySQL Enterprise
Alta disponibilidade com MySQL EnterpriseAlta disponibilidade com MySQL Enterprise
Alta disponibilidade com MySQL Enterprise
 
MySQL Roadmap NoSQL HA Fev17
MySQL Roadmap NoSQL HA Fev17MySQL Roadmap NoSQL HA Fev17
MySQL Roadmap NoSQL HA Fev17
 
Segurança no MySQL
Segurança no MySQLSegurança no MySQL
Segurança no MySQL
 
5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL
 
Alta disponibilidade no MySQL 5.7 GUOB 2016
Alta disponibilidade no MySQL 5.7 GUOB 2016Alta disponibilidade no MySQL 5.7 GUOB 2016
Alta disponibilidade no MySQL 5.7 GUOB 2016
 
MySQL 5.7 como Document Store
MySQL 5.7 como Document StoreMySQL 5.7 como Document Store
MySQL 5.7 como Document Store
 
Enabling digital transformation with MySQL
Enabling digital transformation with MySQLEnabling digital transformation with MySQL
Enabling digital transformation with MySQL
 
Alta Disponibilidade no MySQL 5.7 para aplicações em PHP
Alta Disponibilidade no MySQL 5.7 para aplicações em PHPAlta Disponibilidade no MySQL 5.7 para aplicações em PHP
Alta Disponibilidade no MySQL 5.7 para aplicações em PHP
 
Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7
 
NoSQL no MySQL 5.7
NoSQL no MySQL 5.7NoSQL no MySQL 5.7
NoSQL no MySQL 5.7
 
OpenStack & MySQL
OpenStack & MySQLOpenStack & MySQL
OpenStack & MySQL
 
10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups
 
Novidades do MySQL para desenvolvedores ago15
Novidades do MySQL para desenvolvedores ago15Novidades do MySQL para desenvolvedores ago15
Novidades do MySQL para desenvolvedores ago15
 
Estratégias de Segurança e Gerenciamento para MySQL
Estratégias de Segurança e Gerenciamento para MySQLEstratégias de Segurança e Gerenciamento para MySQL
Estratégias de Segurança e Gerenciamento para MySQL
 
Serviços Escaláveis e de Alta Performance com MySQL e Java
Serviços Escaláveis e de Alta Performance com MySQL e JavaServiços Escaláveis e de Alta Performance com MySQL e Java
Serviços Escaláveis e de Alta Performance com MySQL e Java
 
MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15
 
Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...
Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...
Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...
 

MySQL Profiling com Enterprise Monitor

  • 1. <Insert Picture Here> Profiling e Monitoramento com MySQL Enterprise Monitor Marcos Trujillo marcos.trujillo@oracle.com Airton Lastori airton.lastori@oracle.com dez-2011
  • 2. agenda Problemas cotidianos do DBA e Desenvolvedor Profiling e Monitoramento do MySQL MySQL Enterprise Edition
  • 3. 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?
  • 4. 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?
  • 5. Profiling In software engineering, profiling ("program profiling", "software profiling") is a form of dynamic program analysis that measures, for example, the usage of memory, the usage of particular instructions, or frequency and duration of function calls. The most common use of profiling information is to aid program optimization.
  • 6. Responsabilidades comuns para BDs 1/2 Desenvolvedor/Arquiteto • definir mecanismos eficientes de interação entre aplicação e BD • dimensionamento/upgrade de hardware • responsabilidade sobre a performance geral da aplicação, além de outros requisitos não funcionais • correção de problemas em QA ou Produção (inclusive reescrita de queries para otimização) SysAdmin/DBA • otimização do esquema de dados • criação e utilização correta de índices • ajuste de variáveis no MySQL Server (tuning) • monitoramento e ações corretivas • manutenção dos indices e dados
  • 7. Responsabilidades comuns para BDs 2/2 AMBOS papéis • modelagem do esquema de dados mais eficiente • identificar e melhorar queries que consomem muitos recursos normalmente a razão #1 de perdas de performance Lembre-se: o objetivo do profiling é otimizar!
  • 8. Otimização de Queries em 2 passos 1. seja um incansável caçador de Queries lentas mais executadas • MySQL Query Analyzer • maior produtividade, menor overhead • Recursos nativos • slow query log, mysqldumpslow > SHOW PROCESSLIST > select_scan, select_full_join 2. aplique melhorias • indexação, EXPLAIN • reescrita de queries • re-modelagem do esquema de dados
  • 9. Otimização de Queries em 2 passos 1. seja um incansável caçador de Queries lentas mais executadas • MySQL Query Analyzer • maior produtividade, menor overhead • Recursos nativos • slow query log, mysqldumpslow > SHOW PROCESSLIST > select_scan, select_full_join 2. aplique melhorias • indexação, EXPLAIN • reescrita de queries • re-modelagem do esquema de dados
  • 10. MySQL Enterprise Monitor: Query Analyzer
  • 11. Navegando na execução da Query Exemplo query exec com substitução de variável Stack Trace com informações do código-fonte EXPLAIN completo para otimização de índices
  • 12. Integração com MyOracleSupport MySQL Support Diagnostic Reports • Coleta e empacota rapidamente dados do MySQL, SO, diagnósticos de Queries em um relatório para o Oracle Support • Acompanhamento de tickets do Oracle Support (SRs) • Tempo de resposta acelerado, menor risco
  • 13. Otimização de Queries em 2 passos 1. seja um incansável caçador de Queries lentas mais executadas • MySQL Query Analyzer • maior produtividade, menor overhead • Recursos nativos • slow query log, mysqldumpslow > SHOW PROCESSLIST > select_scan, select_full_join 2. aplique melhorias • indexação, EXPLAIN • reescrita de queries • re-modelagem do esquema de dados
  • 14. Índices e EXPLAIN 1. Índices são intensamente utilizados • operações de Filtro • operações Join • operações Sort 2. EXPLAIN mostra como (e se) estão sendo utilizados 3. Boas práticas • não criar índices desnecessários (degrada performance de escrita) • não criar indices com inicio idêntico (leading part) • não usar toda string para os índices (apenas uma parte inicial já basta) • 16 bytes ou menos • com mais de 32 bytes devem ter cuidados especiais (como cache próprio MyISAM) • crie colunas com hashes e indexe-os ao invés de string longas http://dev.mysql.com/doc/refman/5.5/en/using-explain.html
  • 15. Reescreva Queries lentas 1. Utilize IN clause • SELECT ... WHERE idx IN(1,23,345,456) • muito mais rápido que JOINS • ex. 1k-2k vezes para 80k items 2. Não encapsule seus índices no WHERE • Mantenha índices isolados no lado esquerdo da condição • Select ... Where func(idx) = 20 [index ignored] • Select .. Where idx = otherfunc(20) [may use index] 3. Evite % no início do LIKE em um índice • Select ... Where idx LIKE(„ABC%‟) pode usar índice • Select ... Where idx LIKE(„%XYZ‟) fará full table scan 4. Use UNION ALL quando apropriado • default é UNION DISTINCT 5. Entenda Left/Right JOINS e use apropriadamente http://dev.mysql.com/doc/refman/5.5/en/query-speed.html
  • 16. Re-modelagem do esquema de dados 1. Storage Engine (tipo de tabela) adequado • InnoDB • MyISAM • Outros: Memory, Archive ... 2. Tipos de dados e tamanhos corretos • Tamanhos menores, melhor performance • Não use 255 VARCHAR para tudo • Considere o uso de ENUM e SET • Temporary Tables e Caches estouram tamanho total • PROCEDURE ANALYZE 3. Comprima strings longas • COMPRESS e UNCOMPRESS • No caso de InnoDB, mais importante para versões anteriros a 5.5 http://www.mysql.com/why-mysql/white-papers/mysql_5.5_perf_myisam_innodb.php http://dev.mysql.com/doc/refman/5.5/en/procedure-analyse.html
  • 17. MySQL Workbench SE análise automática e documentação do modelo de dados
  • 18. Bônus: boas práticas gerais 1/2 1. atue nos gargalos 2. não tenha vergonha de perguntar: Google, Forums, MyOracleSupport 3. monitore, seja pró ativo e aceite alguns conselhos: Advisors 4. nunca faça mudanças no ambiente de produção, tenha um bom conjunto de testes 1. benchmark: DBT2, SysBench, mysqlslap, mybench 2. testes automatizados com queries reais: general log, MySQL Proxy, TCP Dump 3. simule carga que se aproxima do ambiente de produção 5. defina objetivos e uma base de comparação (antes e depois) 1. aumentar Transações Por Segundo (TPS) 2. aumentar usuários simultâneos 3. diminuir IO time wait 6. mude apenas uma coisa por vez 1. identifique um possível conjunto de mudanças 2. tente mudá-las separadamente 3. tente combinações
  • 19. Bônus: boas práticas gerais 2/2 7. monitore os resultados • performance das queries • foco no gargalo - mais executadas e que tomam maior tempo • Throughput • média dos tempos das queries melhor que tempos únicos das queries • CPU • IO • Network bandwidth 8. documente e salve os resultados, mantenha seu histórico para seu uso e da equipe
  • 20. MySQL Enterprise Monitor implementa boas práticas com muita produtividade
  • 21. Links MySQL Essentials Webinars (Partes de 1 a 7) mysql.com/news-and-events/web-seminars/mysql-essentials.html MySQL Training (incluindo MySQL Performance Tuning) education.oracle.com MySQL Performance Forum forums.mysql.com/list.php?24 MySQL White Papers dev.mysql.com/why-mysql/white-papers MySQL Enterprise Monitor (trial 30 dias) edelivery.oracle.com
  • 22. Subscrições MySQL Cluster Enterprise Carrier Valor Agregado Edition Grade Standard Enterprise + Edition Standard + • MySQL Database • Plug-Ins • Premier Support • Enterprise Monitor • Workbench SE • Enterprise Backup • Cluster Manager
  • 23. Oracle Suporte para o MySQL * MySQL Premier Support – 5 anos, começando pelo GA
  • 24. Suporte Consultivo MySQL DBA e Desenvolvedores
  • 26.
  • 27.
  • 28. Extensões Comerciais • Enterprise Security • Plug-In: MySQL External Authentication • Enterprise Scalability • Plug-In: MySQL Thread Pool
  • 29. Windows Authentication Connect as 1. MyDomainjoe faz login App na aplicação com senha Windows Connector Connect as Connect as 3. A aplicação conecta-se 2. MyDomainjoe é ao MySQL com usuário autenticado via win_joe. LDAP/AD Connected Connect as 4. Tokens são verificados, o usuário win_joe é autenticado com Windows login, porém Authenticate Windows com privilégios do MySQL. LDAP/AD Auth CREATE USER win_joe IDENTIFIED WITH authentication_windows AS ‘joe';
  • 30. Gestão Padrão do Thread Pool Clientes Externos Gestão Padrão Execução das Conexões das Threads doThread Pool Conexões / Declarações atribuídas aos Threads durante sua existência Clientes Internos • Conexões são atribuídas a 1 thread durante a existência da Conexão. • A mesma thread é usada para todas as declarações de execução (single threaded)
  • 31. Com o Thread Pool Habilitado Clientes Externos Thread Pool Execução das Conexões das Threads Grupo Thread 1 Grupo Thread 1 Threads 1 - 4096 Grupo Thread 2 Grupo Thread 2 Threads 4097 - 8193 Grupo Thread N Grupo Thread N Threads 8194 - N Clientes Internos • Pool contém um número de Grupo de Threads(default = 16), cada um gerencia até 4096 threads reusáveis • Cada conexão é atribuída ao grupo de thread via round robin mantém a performance em altas cargas de usuários/conexões
  • 32. Comparativo com/sem Thread Pool MySQL 5.5 Sysbench OLTP Leitura/Escrita 8,000 7,000 Transações por segundo MySQL Enterprise Edition 6,000 ComThread Pool 5,000 4,000 3,000 2,000 1,000 0 MySQL Community Server Sem Thread Pool Conexões Simultâneas no Banco de Dados MySQL 5.5.16 Oracle Linux 6.1, Unbreakable Kernel 2.6.32 2 sockets, 24 cores, 2 X 12-core Intel(R) Xeon(R) X5670 2.93GHz CPUs 20x Melhor Escalabilidade comThread Pool 72GB DDR3 RAM 2 X LSI SCSI Disk (MR9261-8i) (597GB)
  • 33. Comparativo com/sem Thread Pool MySQL 5.5 Sysbench OLTP Apenas Leitura 12,000 10,000 MySQL Enterprise Edition ComThread Pool 8,000 6,000 T 4,000 MySQL Community Server 2,000 SemThread Pool 0 Conexões Simultâneas no Banco de Dados MySQL 5.5.16 Oracle Linux 6.1, Unbreakable Kernel 2.6.32 2 sockets, 24 cores, 2 X 12-core Intel(R) Xeon(R) X5670 2.93GHz CPUs 72GB DDR3 RAM 3x Melhor Escalabilidade com Thread Pool 2 X LSI SCSI Disk (MR9261-8i) (597GB)
  • 34. MySQL Enterprise Monitor • Visão única e consolidada em todo o ambiente MySQL • Auto-descoberta dos servidores MySQL, topologias de replicação • Regras personalizáveis de monitorização e alertas • Identificação de problemas antes que eles ocorram • Reduz o risco de inatividade • Facilita “scale out” sem exigir mais DBAs Assistente virtual do DBA MySQL! http://mysql.com/trials/
  • 35. MySQL Enterprise Monitor: Query Analyzer
  • 36. MySQL Enterprise Backup • Anteriormente “InnoDB Hot Backup” • Online, non-locking backup & recovery • Tables, Indexes • Server, database, ou object-level • Backups Lógico e Físico • Backups Completos ou Incrementais • Point-in-time recovery • Backups Comprimidos • Também oferece backup e recuperação para MyISAM • Multi-plataforma (Windows, Linux, Unix) • Certificado para Oracle Secure Backup (SBT 2.0)
  • 37. Backups Backups são até 3.5x mais rápidos do que mysqldump
  • 38. Restores Restore é até 16x mais rápido do que mysqldump - mysqldump performance não é linear (mais tables/indexes impacta na performance) - MySQL Enterprise performance é quase linear
  • 39. Compressão do Backup O tamanho do Backup é reduzido de 65% até 93%
  • 41. MySQL Treinamento e Certificação Treinamentos MySQL DBA MySQLDeveloper Certificações 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 MySQL Advanced Availability Stored Procedures MySQL Cluster Opcional Necessário http://education.oracle.com
  • 43. 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
  • 44. Obrigado! Time MySQL Brasil marcos.trujillo@oracle.com marcelo.t.souza@oracle.com ana.guiselini@oracle.com airton.lastori@oracle.com @MySQLBR meetup.com/MySQL-BR

Hinweis der Redaktion

  1. Ext/mysqlOne of the first PHP extensionsActively maintained with PHP 4No new features in PHP 5Exception: Added mysqlnd support with PHP 5.3Bug fixing onlyBest documented database extensionTons of books, tutorials, …Missing support for many MySQL featuresPrepared statements, Queries with multiple result sets (stored procedures), compression, encryption, full charset support, …mysqliFull support for all MySQL featuresStored ProceduresPrepared StatementsEncryption (SSL)CompressionCharsets…Actively developed, maintained and supported by Oracle PDO_mysql“The PHP Data Objects (PDO) extension defines a lightweight, consistent interface for accessing databases in PHP.” http://php.net/intro.pdoLowest common denominatorPHPish APIPDO is emulating prepared statements by default$pdo-&gt;setOption(PDO::MYSQL_ATTR_DIRECT_QUERY, false);
  2. Ext/mysqlOne of the first PHP extensionsActively maintained with PHP 4No new features in PHP 5Exception: Added mysqlnd support with PHP 5.3Bug fixing onlyBest documented database extensionTons of books, tutorials, …Missing support for many MySQL featuresPrepared statements, Queries with multiple result sets (stored procedures), compression, encryption, full charset support, …mysqliFull support for all MySQL featuresStored ProceduresPrepared StatementsEncryption (SSL)CompressionCharsets…Actively developed, maintained and supported by Oracle PDO_mysql“The PHP Data Objects (PDO) extension defines a lightweight, consistent interface for accessing databases in PHP.” http://php.net/intro.pdoLowest common denominatorPHPish APIPDO is emulating prepared statements by default$pdo-&gt;setOption(PDO::MYSQL_ATTR_DIRECT_QUERY, false);
  3. http://dev.mysql.com/doc/refman/5.5/en/using-explain.html
  4. http://dev.mysql.com/doc/refman/5.5/en/query-speed.html
  5. http://www.mysql.com/why-mysql/white-papers/mysql_5.5_perf_myisam_innodb.phphttp://dev.mysql.com/doc/refman/5.5/en/procedure-analyse.html
  6. Database Design Visual Design, modeling Forward/Reverse Engineer Schema validation, Schema doc SQL DevelopmentSQL Editor - Color Syntax Highlighting Objects - Import/Export, Browse/EditConnections - Wizard, SSH TunnelDatabase AdministrationStatus, Configuration, Start/StopUsers, Security, SessionsImport/Export Dump FilesScripting &amp; Plug-in SupportUI Designed to match VS 2010
  7. MySQL External AuthenticationMySQL Thread Pool
  8. Rapid Connection HandlingMySQL offers a specialized internal thread/connection cache that very quickly establishes incoming new connections and efficiently terminates existing connections upon request. The MySQL connection pool service new customer requests so no overhead is wasted on building new connections from scratch. This means that connecting to and disconnecting from the MySQL Database does not incur a performance penalty.ol always has new threads at the ready to