SlideShare uma empresa Scribd logo
1 de 15
MySQL

the database



          Miguel Sousa Filipe - Maio de 2009
Mapa
 MySQL, ... numa imagem
 Storage Engines
    MyISAM
    InnoDB
    archive, memory, outros...
 Replicação
 MySQL Cluster
 Linux tunning para MySQL
 Tunning do MySQL
 MySQL 5.4, 6.0
    SMP performance
    Falcon
    Maria
 Comunidade, patches, recursos.
MyISAM

 É o engine default
 Muito Rápido nos cenários:
    (quase) só Leituras
    (quase) só Escritas
 Má performance em cargas mistas.
    Locking é feito ao nivel da tabela.
 Não é ACID porque:
    Não suporta transacções
    Não é crash-safe
 Suporta full-text-search
 Tunning da memória que pode usar é confuso.
InnoDB

 Storage engine Transaccional, suporta ACID.
    crash-safe
    transacções
    Enterprise level
 Multi-Versioning Concurrency Control.
 Muito bom em cargas mistas (leituras + escritas)
 Locking granular (ao nível da quot;rowquot;)
 Mais fácil de afinar a performance.
 Ocupa mais espaço (1.5x) em disco que MyISAM
 Maior carga de IO/disco (para garantir ACID)
Archive, Memory, outros..
 Archive
    Append only
    Extremamente compacto
    Excelente para logging/auditing/arquivamento.
    É mais lento que MyISAM para insersões ou leituras.
    (devido à compressão)
 Memory
    Volátil, existe unicamente em memória
    Extremamente rápido
    Limite de tamanho, mas não existe limite do nº de
    tabelas quot;memoryquot;
    Suporta indices HASH
 Federated, CSV, Blackhole, Merge, NDB
Replicação
  Master-Slave             Usos avançados:
  Assincrona                  Master - Master
  Usos principais             Replicação Circular
     Hot spare                Fast Master promotion
     Hot backup            Na versão 5.1, 5.4, 6.0:
     Load balance das         Row based replication
     leituras              Patches disponíveis:
  Fácil de usar               Semi-sync replication
  Fácil de manter             Scriptable replication
  Estável                     Delayed replication
  Cuidado com:
     espaço em disco
     escritas nos slaves
     troca de master
Replicação

  Extremamente popular
  Killer Feature
  Imensos tutoriais online (Youtube videos e tudo.. )
  Documentação oficial é muito boa
  Possível replicar BDs distintos para slaves distintos.
  http://dev.mysql.com/doc/refman/5.4/en/replication-
  solutions.html
  Todos deviam usar :)
MySQL Cluster (NDB)
MySQL Cluster (NDB)
Vantagens:
   Alta disponibilidade
   quot;replicaçãoquot; sincrona
   Escalabidade para cargas grandes
   Usado sobretudo em quot;enterprise quot;
   Funciona, já experimentei!
   Tutoriais online (youtube videos e tudo)

Limitações:
   5.0: Tabelas têm de caber em memória
   5.1: Indices têem de caber em memória
   Latências altas
   Performance
   Complexidade
System Tunning

   Não usar raid5 (usar raid10)
   XFS tem melhor performance
   Linux a 64bits
   Muita RAM é a melhor forma de melhorar a performance
   Não usar o MySQL da distribuição

Cuidado com:
   swapiness
   Muitos cpus ou cores
   Muitos discos/raids
MySQL tuning
show GLOBAL status;
show GLOBAL variables;
show engine innodb status;

sort_buffer_size
tmp_table_size
MyISAM
  key_buffer_size
InnoDB
  innodb_buffer_pool_size
  innodb_file_per_table
  innodb_flush_log_at_trx_commit = 2
  innodb_flush_method=O_DIRECT
Memory
  max_heap_table_size
Versões
  Super estável - MySQL 5.0.77+
  Estável - MySQL 5.1.34+
     row based replication
     table partitioning
     MySQL Cluster bastante melhor.
     melhor performance, diagnóstico
  Super Veloz (beta) - MySQL 5.4.0+
     melhor escalabilidade e performance
     melhor diagnostico/monitoring
     integra patches do Google, Percona, outros
  Mais recente (alpha) - MySQL 6.0.10+
     Falcon (novo storage engine)
     Semi-sync replication
storage engines
Comunidade                          Maria - MyISAM+
                                    Falcon - InnoDB+
                                    XtraDB - InnoDB+
                                    PBXT - InnoDB+
                                    Sphinx - full text search

Percona (XtraDB) http://www.percona.com/
Primebase (PBXT) http://www.primebase.org/
Google (patches) http://code.google.com/p/google-mysql-
tools/
Google developer blog http://mysqlha.blogspot.com/
Drizzle (fork) https://launchpad.net/drizzle
MariaDB (fork) http://askmonty.org/wiki/index.php/MariaDB
Sphinx http://www.sphinxsearch.com/
... existem mais...
MySQL - the database

Mais conteúdo relacionado

Mais procurados

Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidorJoao Andre Picao
 
Sqlite - Introdução
Sqlite - IntroduçãoSqlite - Introdução
Sqlite - IntroduçãoJoao Johanes
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPAricelio Souza
 
Trabalho windows server conluido
Trabalho windows server conluidoTrabalho windows server conluido
Trabalho windows server conluidoiExtrablitz
 
Sistemas servidor.docx
Sistemas servidor.docxSistemas servidor.docx
Sistemas servidor.docxJoao Kanino
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidorAndré bogas
 
UNIFAL - MySQL Storage Engine - 5.0/5.6
UNIFAL - MySQL Storage Engine - 5.0/5.6UNIFAL - MySQL Storage Engine - 5.0/5.6
UNIFAL - MySQL Storage Engine - 5.0/5.6Wagner Bianchi
 
Goo cloud backup e storage
Goo cloud   backup e storageGoo cloud   backup e storage
Goo cloud backup e storagegoocloud
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidorsimoesflavio
 
Trabalho de sistema operativo servidor
Trabalho de sistema operativo servidorTrabalho de sistema operativo servidor
Trabalho de sistema operativo servidordtml2k
 
Virtualização de Cluster na plataforma Microsoft.
Virtualização de Cluster na plataforma Microsoft.Virtualização de Cluster na plataforma Microsoft.
Virtualização de Cluster na plataforma Microsoft.Jaguaraci Silva
 
Sistemas Operativos Servidores
Sistemas Operativos ServidoresSistemas Operativos Servidores
Sistemas Operativos ServidoresAlexandre Maia
 
Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6MySQL Brasil
 
Windows server 2003
Windows server 2003Windows server 2003
Windows server 2003guestdf16d4b
 
Sistema Operativo Servidor
Sistema Operativo ServidorSistema Operativo Servidor
Sistema Operativo ServidorMiguel Marques
 
Sistema Operativo Servidor
Sistema Operativo ServidorSistema Operativo Servidor
Sistema Operativo ServidorDaniel Barros
 
S.o. windows server2008
S.o. windows server2008S.o. windows server2008
S.o. windows server2008teacherpereira
 

Mais procurados (20)

SQLite
SQLiteSQLite
SQLite
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidor
 
Sqlite - Introdução
Sqlite - IntroduçãoSqlite - Introdução
Sqlite - Introdução
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
Trabalho windows server conluido
Trabalho windows server conluidoTrabalho windows server conluido
Trabalho windows server conluido
 
Sistemas servidor.docx
Sistemas servidor.docxSistemas servidor.docx
Sistemas servidor.docx
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidor
 
UNIFAL - MySQL Storage Engine - 5.0/5.6
UNIFAL - MySQL Storage Engine - 5.0/5.6UNIFAL - MySQL Storage Engine - 5.0/5.6
UNIFAL - MySQL Storage Engine - 5.0/5.6
 
Goo cloud backup e storage
Goo cloud   backup e storageGoo cloud   backup e storage
Goo cloud backup e storage
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidor
 
Trabalho de sistema operativo servidor
Trabalho de sistema operativo servidorTrabalho de sistema operativo servidor
Trabalho de sistema operativo servidor
 
Virtualização de Cluster na plataforma Microsoft.
Virtualização de Cluster na plataforma Microsoft.Virtualização de Cluster na plataforma Microsoft.
Virtualização de Cluster na plataforma Microsoft.
 
Sistemas Operativos Servidores
Sistemas Operativos ServidoresSistemas Operativos Servidores
Sistemas Operativos Servidores
 
Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6Mais performance com o MySQL 5.6
Mais performance com o MySQL 5.6
 
Aula 8 sql introdução
Aula 8   sql introduçãoAula 8   sql introdução
Aula 8 sql introdução
 
Modelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDSModelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDS
 
Windows server 2003
Windows server 2003Windows server 2003
Windows server 2003
 
Sistema Operativo Servidor
Sistema Operativo ServidorSistema Operativo Servidor
Sistema Operativo Servidor
 
Sistema Operativo Servidor
Sistema Operativo ServidorSistema Operativo Servidor
Sistema Operativo Servidor
 
S.o. windows server2008
S.o. windows server2008S.o. windows server2008
S.o. windows server2008
 

Destaque

Fisl10 MySql na Globo.com por Camila Dias
Fisl10 MySql na Globo.com por Camila DiasFisl10 MySql na Globo.com por Camila Dias
Fisl10 MySql na Globo.com por Camila DiasCamila Dias
 
MySQL para Desenvolvedores de Produto
MySQL para Desenvolvedores de ProdutoMySQL para Desenvolvedores de Produto
MySQL para Desenvolvedores de ProdutoMySQL Brasil
 
Tutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL WorkbenchTutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL WorkbenchDaniel Brandão
 
Progweb Aula8
Progweb Aula8Progweb Aula8
Progweb Aula8softeam
 
Apresentação formação web - up marketing digital - módulo ii - 2º fds
Apresentação   formação web - up marketing digital - módulo ii - 2º fdsApresentação   formação web - up marketing digital - módulo ii - 2º fds
Apresentação formação web - up marketing digital - módulo ii - 2º fdsRangel Javier
 
O comando SELECT (ordenação)
O comando SELECT (ordenação)O comando SELECT (ordenação)
O comando SELECT (ordenação)Graciano Torrão
 
Banco de dadados MySQL com PHP
Banco de dadados MySQL com PHPBanco de dadados MySQL com PHP
Banco de dadados MySQL com PHPLeonardo Soares
 
BANCO DE DADOS RELACIONAIS
BANCO DE DADOS RELACIONAIS BANCO DE DADOS RELACIONAIS
BANCO DE DADOS RELACIONAIS Antonio Pedro
 
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados RelacionaisBanco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados Relacionaisalexculpado
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoRangel Javier
 
Modelos de banco de dados
Modelos de banco de dadosModelos de banco de dados
Modelos de banco de dadosEdgar Stuart
 

Destaque (15)

Fisl10 MySql na Globo.com por Camila Dias
Fisl10 MySql na Globo.com por Camila DiasFisl10 MySql na Globo.com por Camila Dias
Fisl10 MySql na Globo.com por Camila Dias
 
MySQL para Desenvolvedores de Produto
MySQL para Desenvolvedores de ProdutoMySQL para Desenvolvedores de Produto
MySQL para Desenvolvedores de Produto
 
Tutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL WorkbenchTutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL Workbench
 
Segurança no MySQL
Segurança no MySQLSegurança no MySQL
Segurança no MySQL
 
Progweb Aula8
Progweb Aula8Progweb Aula8
Progweb Aula8
 
Apresentação formação web - up marketing digital - módulo ii - 2º fds
Apresentação   formação web - up marketing digital - módulo ii - 2º fdsApresentação   formação web - up marketing digital - módulo ii - 2º fds
Apresentação formação web - up marketing digital - módulo ii - 2º fds
 
O comando SELECT (JOIN)
O comando SELECT (JOIN)O comando SELECT (JOIN)
O comando SELECT (JOIN)
 
O comando SELECT (ordenação)
O comando SELECT (ordenação)O comando SELECT (ordenação)
O comando SELECT (ordenação)
 
Banco de dadados MySQL com PHP
Banco de dadados MySQL com PHPBanco de dadados MySQL com PHP
Banco de dadados MySQL com PHP
 
BANCO DE DADOS RELACIONAIS
BANCO DE DADOS RELACIONAIS BANCO DE DADOS RELACIONAIS
BANCO DE DADOS RELACIONAIS
 
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados RelacionaisBanco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Introduction to Mysql
Introduction to MysqlIntroduction to Mysql
Introduction to Mysql
 
MySQL - O Comando SELECT
MySQL - O Comando SELECTMySQL - O Comando SELECT
MySQL - O Comando SELECT
 
Modelos de banco de dados
Modelos de banco de dadosModelos de banco de dados
Modelos de banco de dados
 

Semelhante a MySQL - the database

Armazenamento+de+alta+disponibilidade+com+amazon+ebs
Armazenamento+de+alta+disponibilidade+com+amazon+ebsArmazenamento+de+alta+disponibilidade+com+amazon+ebs
Armazenamento+de+alta+disponibilidade+com+amazon+ebsAmazon Web Services LATAM
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveiselliando dias
 
MySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI TecnologiaMySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI TecnologiaMySQL Brasil
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014MySQL Brasil
 
Usando Hyper-v 2012 para virtualização do SQL Server
Usando Hyper-v 2012 para virtualização do SQL ServerUsando Hyper-v 2012 para virtualização do SQL Server
Usando Hyper-v 2012 para virtualização do SQL Serverleorsilva
 
Tcvb2 diogo mendes_sistemas operativos servidor_v1
Tcvb2 diogo mendes_sistemas operativos servidor_v1Tcvb2 diogo mendes_sistemas operativos servidor_v1
Tcvb2 diogo mendes_sistemas operativos servidor_v1diogomendes99
 
Alta Performance com Java
Alta Performance com JavaAlta Performance com Java
Alta Performance com JavaAlisson Pedrina
 
Redes de computadores módulo 3
Redes de computadores módulo 3Redes de computadores módulo 3
Redes de computadores módulo 3ruitavares998
 
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBRAvaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBRJulio Viegas
 
Alta disponibilidade com MySQL Enterprise
Alta disponibilidade com MySQL EnterpriseAlta disponibilidade com MySQL Enterprise
Alta disponibilidade com MySQL EnterpriseMySQL Brasil
 
FreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeFreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeBoteco 4Linux
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoelliando dias
 
NoSQL - Caelum Day 2009
NoSQL - Caelum Day 2009NoSQL - Caelum Day 2009
NoSQL - Caelum Day 2009Nico Steppat
 
FLISOL 2014 - Banco de dados Firebird rodando em CentOS - Faceca
FLISOL 2014 - Banco de dados Firebird rodando em CentOS - FacecaFLISOL 2014 - Banco de dados Firebird rodando em CentOS - Faceca
FLISOL 2014 - Banco de dados Firebird rodando em CentOS - FacecaMárcio Henrique da Silva
 
Web Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheWeb Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheDell Technologies
 
ENPO - RMAN: Vilão ou Heroí?
ENPO - RMAN: Vilão ou Heroí?ENPO - RMAN: Vilão ou Heroí?
ENPO - RMAN: Vilão ou Heroí?Rodrigo Almeida
 
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
 

Semelhante a MySQL - the database (20)

Armazenamento+de+alta+disponibilidade+com+amazon+ebs
Armazenamento+de+alta+disponibilidade+com+amazon+ebsArmazenamento+de+alta+disponibilidade+com+amazon+ebs
Armazenamento+de+alta+disponibilidade+com+amazon+ebs
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveis
 
NoSQL Livre
NoSQL LivreNoSQL Livre
NoSQL Livre
 
MySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI TecnologiaMySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI Tecnologia
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
Novidades do Universo MySQL para PHP Web Developers - Dezembro 2014
 
Usando Hyper-v 2012 para virtualização do SQL Server
Usando Hyper-v 2012 para virtualização do SQL ServerUsando Hyper-v 2012 para virtualização do SQL Server
Usando Hyper-v 2012 para virtualização do SQL Server
 
Tcvb2 diogo mendes_sistemas operativos servidor_v1
Tcvb2 diogo mendes_sistemas operativos servidor_v1Tcvb2 diogo mendes_sistemas operativos servidor_v1
Tcvb2 diogo mendes_sistemas operativos servidor_v1
 
Alta Performance com Java
Alta Performance com JavaAlta Performance com Java
Alta Performance com Java
 
Redes de computadores módulo 3
Redes de computadores módulo 3Redes de computadores módulo 3
Redes de computadores módulo 3
 
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBRAvaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
Avaliando o Apache Cassandra como cache distribuido no SPC Brasil - NoSQLBR
 
Alta disponibilidade com MySQL Enterprise
Alta disponibilidade com MySQL EnterpriseAlta disponibilidade com MySQL Enterprise
Alta disponibilidade com MySQL Enterprise
 
FreeBsd com Alta Disponibilidade
FreeBsd com Alta DisponibilidadeFreeBsd com Alta Disponibilidade
FreeBsd com Alta Disponibilidade
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Web seminario varnish
Web seminario varnishWeb seminario varnish
Web seminario varnish
 
NoSQL - Caelum Day 2009
NoSQL - Caelum Day 2009NoSQL - Caelum Day 2009
NoSQL - Caelum Day 2009
 
FLISOL 2014 - Banco de dados Firebird rodando em CentOS - Faceca
FLISOL 2014 - Banco de dados Firebird rodando em CentOS - FacecaFLISOL 2014 - Banco de dados Firebird rodando em CentOS - Faceca
FLISOL 2014 - Banco de dados Firebird rodando em CentOS - Faceca
 
Web Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheWeb Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+Apache
 
ENPO - RMAN: Vilão ou Heroí?
ENPO - RMAN: Vilão ou Heroí?ENPO - RMAN: Vilão ou Heroí?
ENPO - RMAN: Vilão ou Heroí?
 
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 - the database

  • 1. MySQL the database Miguel Sousa Filipe - Maio de 2009
  • 2. Mapa MySQL, ... numa imagem Storage Engines MyISAM InnoDB archive, memory, outros... Replicação MySQL Cluster Linux tunning para MySQL Tunning do MySQL MySQL 5.4, 6.0 SMP performance Falcon Maria Comunidade, patches, recursos.
  • 3.
  • 4. MyISAM É o engine default Muito Rápido nos cenários: (quase) só Leituras (quase) só Escritas Má performance em cargas mistas. Locking é feito ao nivel da tabela. Não é ACID porque: Não suporta transacções Não é crash-safe Suporta full-text-search Tunning da memória que pode usar é confuso.
  • 5. InnoDB Storage engine Transaccional, suporta ACID. crash-safe transacções Enterprise level Multi-Versioning Concurrency Control. Muito bom em cargas mistas (leituras + escritas) Locking granular (ao nível da quot;rowquot;) Mais fácil de afinar a performance. Ocupa mais espaço (1.5x) em disco que MyISAM Maior carga de IO/disco (para garantir ACID)
  • 6. Archive, Memory, outros.. Archive Append only Extremamente compacto Excelente para logging/auditing/arquivamento. É mais lento que MyISAM para insersões ou leituras. (devido à compressão) Memory Volátil, existe unicamente em memória Extremamente rápido Limite de tamanho, mas não existe limite do nº de tabelas quot;memoryquot; Suporta indices HASH Federated, CSV, Blackhole, Merge, NDB
  • 7. Replicação Master-Slave Usos avançados: Assincrona Master - Master Usos principais Replicação Circular Hot spare Fast Master promotion Hot backup Na versão 5.1, 5.4, 6.0: Load balance das Row based replication leituras Patches disponíveis: Fácil de usar Semi-sync replication Fácil de manter Scriptable replication Estável Delayed replication Cuidado com: espaço em disco escritas nos slaves troca de master
  • 8. Replicação Extremamente popular Killer Feature Imensos tutoriais online (Youtube videos e tudo.. ) Documentação oficial é muito boa Possível replicar BDs distintos para slaves distintos. http://dev.mysql.com/doc/refman/5.4/en/replication- solutions.html Todos deviam usar :)
  • 10. MySQL Cluster (NDB) Vantagens: Alta disponibilidade quot;replicaçãoquot; sincrona Escalabidade para cargas grandes Usado sobretudo em quot;enterprise quot; Funciona, já experimentei! Tutoriais online (youtube videos e tudo) Limitações: 5.0: Tabelas têm de caber em memória 5.1: Indices têem de caber em memória Latências altas Performance Complexidade
  • 11. System Tunning Não usar raid5 (usar raid10) XFS tem melhor performance Linux a 64bits Muita RAM é a melhor forma de melhorar a performance Não usar o MySQL da distribuição Cuidado com: swapiness Muitos cpus ou cores Muitos discos/raids
  • 12. MySQL tuning show GLOBAL status; show GLOBAL variables; show engine innodb status; sort_buffer_size tmp_table_size MyISAM key_buffer_size InnoDB innodb_buffer_pool_size innodb_file_per_table innodb_flush_log_at_trx_commit = 2 innodb_flush_method=O_DIRECT Memory max_heap_table_size
  • 13. Versões Super estável - MySQL 5.0.77+ Estável - MySQL 5.1.34+ row based replication table partitioning MySQL Cluster bastante melhor. melhor performance, diagnóstico Super Veloz (beta) - MySQL 5.4.0+ melhor escalabilidade e performance melhor diagnostico/monitoring integra patches do Google, Percona, outros Mais recente (alpha) - MySQL 6.0.10+ Falcon (novo storage engine) Semi-sync replication
  • 14. storage engines Comunidade Maria - MyISAM+ Falcon - InnoDB+ XtraDB - InnoDB+ PBXT - InnoDB+ Sphinx - full text search Percona (XtraDB) http://www.percona.com/ Primebase (PBXT) http://www.primebase.org/ Google (patches) http://code.google.com/p/google-mysql- tools/ Google developer blog http://mysqlha.blogspot.com/ Drizzle (fork) https://launchpad.net/drizzle MariaDB (fork) http://askmonty.org/wiki/index.php/MariaDB Sphinx http://www.sphinxsearch.com/ ... existem mais...