MySQL - the database

5,800 views

Published on

Breve apresentação ao MySQL e algumas das suas características como base de dados.

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
5,800
On SlideShare
0
From Embeds
0
Number of Embeds
3,463
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

MySQL - the database

  1. 1. MySQL the database Miguel Sousa Filipe - Maio de 2009
  2. 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. 3. 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.
  4. 4. 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)
  5. 5. 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
  6. 6. 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
  7. 7. 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 :)
  8. 8. MySQL Cluster (NDB)
  9. 9. 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
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. 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...

×