3. Top websites
fonte: alexa.com/topsites 10-mai-2012
4. Quem usa MySQL – Top 10 Websites
1.Google
2.Facebook
3.Youtube
4.Yahoo!
5.Baidu.com
6.Wikipedia
7.Windows Live
8.Twitter
9.QQ.com
10.Amazon.com
fonte: alexa.com/topsites 10-mai-2012
5. Por que o MySQL é a escolha
para aplicações Web destas e
de milhares de outras
empresas?
6. Agenda
• história do MySQL
• razões para utilizar MySQL em web apps
• ambiente de desenvolvimento MySQL
• uso profissional e certificado do MySQL
8. Conhecendo melhor o MySQL
Nome
MySQL dado
pelo co- MySQL
fundador Cluster é
Monty adquirido da Sun
Widenius, Ericsson Microsystems é
MyISAM surge a pela MySQL adquirida pela
e mSQL MySQL AB AB Oracle
Nova interface Cresce o MySQL AB é
SQL com ecosistema adquirida pela
arquitetura MySQL, Sun
mais flexível pautado no Microsystems
modelo
open
source
10. Por que MySQL é muito utilizado?
1. MySQL: projetado para a Web
2. baixo TCO
3. performance & escalabilidade
4. confiabilidade & disponibilidade
5. LAMP stack
6. facilidade de uso & administração
7. a melhor escolha para SaaS & cloud
8. MySQL Cluster para serviços Web de escala
9. MySQL Enterprise Edition da Oracle
10. MySQL & NoSQL
http://www.mysql.com/why-mysql/white-papers/mysql-wp-top10-webbased-apps.php
11. Por que MySQL é muito utilizado?
1. MySQL: projetado para a Web
2. baixo TCO
3. performance & escalabilidade
4. confiabilidade & disponibilidade
5. LAMP stack
6. facilidade de uso & administração
7. a melhor escolha para SaaS & cloud
8. MySQL Cluster para serviços Web de escala
9. MySQL Enterprise Edition da Oracle
10. MySQL & NoSQL
http://www.mysql.com/why-mysql/white-papers/mysql-wp-top10-webbased-apps.php
12. Arquitetura MySQL Server
MySQL Server Connectors
Clients and Apps Native C API, JDBC, ODBC, .Net, PHP, Ruby, Python, VB, Perl
Enterprise Management
Services and Utilities Connection Pool
Authentication – Thread Reuse – Connection Limits – Check Memory – Caches
Backup & Recovery
Security
Replication
SQL Interface Parser Optimizer Caches
Cluster
Partitioning DDL, DML, Stored Query Translation, Access Paths, Global and Engine
Instance Manager Procedures, Views, Object Privileges Statistics Specific Caches and
Information_Schema Triggers, Etc.. Buffers
MySQL Workbench
Pluggable Storage Engines
Memory, Index and Storage Management
InnoDB MyISAM Cluster Etc… Partners Community More..
Filesystems, Files and Logs
Redo, Undo, Data, Index, Binary, Error, Query and Slow
13. InnoDB no MySQL
- Storage Engine mais utilizado em:
- aplicações Web 2.0
- aplicações de varejo
- aplicações de entretenimento & mídia
- ACID
- Crash recovery
- Integridade referencial
- Suporta altos níveis de usuários concorrentes
- Na versão MySQL 5.5:
- padrão
- otimizado para hardware multi-core, multi-thread e SOs
15. Uso da Memória Disponível
- Sistema de caches padão na indústria:
- dados
- índices
- Main memory tables & standard disk tables
- como parte do Schema (NDB)
- aquecimento (warm up)
- Query cache
- projetado para aplicações Web: queries repetitivas
- armazena query e result set, aliviando o uso de CPU
16. MySQL Server 5.6 DM
DEVELOPMENT
MILESTONE
NoSQL com Memcached API acessando InnoDB,
otimizador melhorado,
store engines mais inteligentes,
melhor instrumentação...
labs.mysql.com
18. Por que MySQL é muito utilizado?
1. MySQL: projetado para a Web
2. baixo TCO
3. performance & escalabilidade
4. confiabilidade & disponibilidade
5. LAMP stack
6. facilidade de uso & administração
7. a melhor escolha para SaaS & cloud
8. MySQL Cluster para serviços Web de escala
9. MySQL Enterprise Edition da Oracle
10. MySQL & NoSQL
http://www.mysql.com/why-mysql/white-papers/mysql-wp-top10-webbased-apps.php
19. Baixo custo total de propriedade
- Modelo Open Source
- Hardware commodity
- Escalabiliade horizontal e incremental
- Fácil manutenção
- Edição Enterprise com excelente TCO
20. Menor TCO
Custo Total de Propriedade
até96 % menor que o
SQL Server 2012.
mysql.com/tco
21. Por que MySQL é muito utilizado?
1. MySQL: projetado para a Web
2. baixo TCO
3. performance & escalabilidade
4. confiabilidade & disponibilidade
5. LAMP stack
6. facilidade de uso & administração
7. a melhor escolha para SaaS & cloud
8. MySQL Cluster para serviços Web de escala
9. MySQL Enterprise Edition da Oracle
10. MySQL & NoSQL
http://www.mysql.com/why-mysql/white-papers/mysql-wp-top10-webbased-apps.php
22. Desafio de manter a performance
- mudanças rápidas exigidas pelo mercado:
- consumidor ou concorrência
- crescimento acelerado: conexões e volume de dados
Como manter a mesma performance tanto para
LEITURAS quanto para ESCRITAS?
23. Replicação MySQL: como funciona 1/3
Aplicação
1. Operação de Escrita
Master Slave
3. I/O Thread copia
mudanças do binlog
2. Mudanças para relaylog
escritas no binlog 4. SQL Thread
aplica mudanças
do relaylog para o
MySQL
• Recurso nativo do MySQL
• Slave adiciona carga mínima ao Master
25. Replicação MySQL: como funciona 3/3
Aplicação
Escritas & Leituras
Master Slave
• Fail-over
• Master: down
• Slave: ativo
26. Outros usos da replicação
• Backup
• diminuir carga servidor
• atraso programado
• Análise
• Data Mart
• Data Warehouse
• Integração
• dataset completo
• dataset parcial
• Escalabilidade
• leitura intensiva (mais comum)
• escrita intensiva com particionamento ou outras topologias
27. Replicação MySQL: como escalar 1/2
Aplicação
Escritas & Leituras Leituras
Master Slave
• Divisão de leituras e escritas (R/W Split)
• Modelo assíncrono (padrão)
• Modelo semi-síncrono (a partir da versão 5.5)
28. Replicação MySQL: como escalar 2/2
Aplicação Load Balancer
Escritas & Leituras Leituras Leituras
Master Slave Slave
Replicação MySQL
• Escreva para 1 Master
• Leia de vários Slaves, adicione mais quando necessário
• Perfeito para aplicações de leitura intensiva
29. Outras funcionalidades de alta performance
- Particionamento de dados
- separação dos dados e índices
- otimizador inteligente
- Suporte para vários tipos de dados: range, hash, lista,
caracter, numérico
- particionamento composto/sub particionamento: várias
colunas
- Utilitários e funcionalidades para ambientes de alta
performance
- Cargas paralelas de dados
- Suporte para vários tipos de indexação: clustered, full-text,
hash, spatial, b-tree
- Locking row-level com baixa contenção
30. MySQL 5.5 SysBench Benchmarks
MySQL 5.5.4
(New InnoDB)
MySQL 5.1.40
(InnoDB Plug-in)
MySQL 5.1.40
(InnoDB built-in)
364% ganho de desempenho Intel Xeon X7460 x86_64
4 CPU x 6 Cores/CPU
2.66 GHz, 32GB RAM
for MySQL 5.5 over 5.1.40; at scale Fedora 10
31. MySQL 5.5 SysBench Benchmarks
MySQL 5.5.4
(New InnoDB)
MySQL 5.1.40
(InnoDB Plug-in)
MySQL 5.1.40
(InnoDB built-in)
200% ganho de desempenho Intel Xeon X7460 x86_64
4 CPU x 6 Cores/CPU
for MySQL 5.5 over 5.1.40; at scale 2.66 GHz, 32GB RAM
Fedora 10
32. Por que MySQL é muito utilizado?
1. MySQL: projetado para a Web
2. baixo TCO
3. performance & escalabilidade
4. confiabilidade & disponibilidade
5. LAMP stack
6. facilidade de uso & administração
7. a melhor escolha para SaaS & cloud
8. MySQL Cluster para serviços Web de escala
9. MySQL Enterprise Edition da Oracle
10. MySQL & NoSQL
http://www.mysql.com/why-mysql/white-papers/mysql-wp-top10-webbased-apps.php
34. Confiabilidade: Segurança
- Autenticação e autorização com altra granularidade
- Capacidade de bloquear usuários por cliente
- Framework de privilégios por objetos do schema
- Suporte SSH e SSL
- Funções de criptografia
- Ferramentas de Backup & Recovery
- mysqldump
- MySQL Enterprise Backup
37. Por que MySQL é muito utilizado?
1. MySQL: projetado para a Web
2. baixo TCO
3. performance & escalabilidade
4. confiabilidade & disponibilidade
5. LAMP stack
6. facilidade de uso & administração
7. a melhor escolha para SaaS & cloud
8. MySQL Cluster para serviços Web de escala
9. MySQL Enterprise Edition da Oracle
10. MySQL & NoSQL
http://www.mysql.com/why-mysql/white-papers/mysql-wp-top10-webbased-apps.php
39. Por que MySQL é muito utilizado?
1. MySQL: projetado para a Web
2. baixo TCO
3. performance & escalabilidade
4. confiabilidade & disponibilidade
5. LAMP stack
6. facilidade de uso & administração
7. a melhor escolha para SaaS & cloud
8. MySQL Cluster para serviços Web de escala
9. MySQL Enterprise Edition da Oracle
10. MySQL & NoSQL
http://www.mysql.com/why-mysql/white-papers/mysql-wp-top10-webbased-apps.php
40. Facilidade de uso e administração
- Regra dos 15min
- Ainda mais rápido com Windows Installer
- Funcionalidades
- automatic space expansion
- auto-restart,
- dynamic configuration
- Ferramentas visuais
- Arquitetura flexível
- convite à experimentação
- permite inovação acelerada através de customizações
- Disponível para diversas plataformas e linguagens
41. Por que MySQL é muito utilizado?
1. MySQL: projetado para a Web
2. baixo TCO
3. performance & escalabilidade
4. confiabilidade & disponibilidade
5. LAMP stack
6. facilidade de uso & administração
7. a melhor escolha para SaaS & cloud
8. MySQL Cluster para serviços Web de escala
9. MySQL Enterprise Edition da Oracle
10. MySQL & NoSQL
http://www.mysql.com/why-mysql/white-papers/mysql-wp-top10-webbased-apps.php
42. MySQL, SaaS e Cloud Computing
- Diversos casos de sucesso SaaS
- RightNow, SugarCRM, Omniture, Supply Dynamics,
Workday, Zimbra
- Banco de dados mais popular nos serviços de
hospedagem
- PaaS
- caso Amazon RDS (Relational Database Service)
- Clouds Privadas
- Oracle Virtual Machine Templates
43. Por que MySQL é muito utilizado?
1. MySQL: projetado para a Web
2. baixo TCO
3. performance & escalabilidade
4. confiabilidade & disponibilidade
5. LAMP stack
6. facilidade de uso & administração
7. a melhor escolha para SaaS & cloud
8. MySQL Cluster para serviços Web de escala
9. MySQL Enterprise Edition da Oracle
10. MySQL & NoSQL
http://www.mysql.com/why-mysql/white-papers/mysql-wp-top10-webbased-apps.php
44. MySQL Cluster
Alta Performance
escalabilidade de escrita & baixíssima latência
Disponibilidade
99,999%
Flexibilidade
vários métodos de acesso à dados (SQL+NoSQL)
Baixo TCO
open source + hardware commodity
45. MySQL Cluster: como funciona 1/3
Aplicação
SQL Node
Auto-Sharding
Node Group 1 Node Group 2
ndb ndb
Cluster
Mgmt
Data Node
Data Node
F1 F2
F3 F4
Data Nodes
46. MySQL Cluster: como funciona 2/3
MySQL Cluster
Application Nodes
NDB API REST LDAP
Application Nodes
Node Group 11
Node Group Node Group 2 2
Node Group
Node 1
Node 3
Cluster F1 F2 Cluster
Mgmt Mgmt
F3 Replicação F4
Síncrona
Node 2
Node 4
F3 F4
F1 F2
Data Nodes
47. MySQL Cluster: como funciona 3/3
MySQL Cluster
Application Nodes
NDB API REST LDAP
Application Nodes
Self-Healing
Node Group 11
Node Group
Geo-Replicação
Node Group 2 2
Node Group
Node 1
Node 3
Cluster F1 F2 Cluster
Mgmt Mgmt
F3 Replicação F4
Síncrona
Node 2
Node 4
F3 F4
F1 F2
48. MySQL Cluster 7.2: 1 Bilhão Queries por Minuto
SELECT Queries / Minuto UPDATE Queries / Minuto
120
1.200
1.000 100
800 80
Milhões
Milhões
600 60
400 40
200 20
0 0
2 4 8 4 8
Número de Data Nodes Número de Data Nodes
8 x Servidores Intel “Commodity” Infiniband networking
2 x processadores 6-core 2.93GHz flexAsynch benchmark
x5670 (24 threads) C++ NoSQL API (NDB API)
48GB RAM
Linux OS
49. Caso de sucesso
“MySQL Cluster 7.1 gave us
the perfect combination of
extreme levels of transaction
throughput, low latency &
carrier-grade availability,
while reducing TCO”
Phani Naik, Pyro Group
mysql.com/customers
50. Por que MySQL é muito utilizado?
1. MySQL: projetado para a Web
2. baixo TCO
3. performance & escalabilidade
4. confiabilidade & disponibilidade
5. LAMP stack
6. facilidade de uso & administração
7. a melhor escolha para SaaS & cloud
8. MySQL Cluster para serviços Web de escala
9. MySQL Enterprise Edition da Oracle
10. MySQL & NoSQL
http://www.mysql.com/why-mysql/white-papers/mysql-wp-top10-webbased-apps.php
51. Produtos
mysql.com/products
MY ORACLE SUPPORT
KNOWLEDGE BASE MySQL MONITOR
MySQL CONSULTATIVE SUPPORT BACKUP
52. Por que MySQL é muito utilizado?
1. MySQL: projetado para a Web
2. baixo TCO
3. performance & escalabilidade
4. confiabilidade & disponibilidade
5. LAMP stack
6. facilidade de uso & administração
7. a melhor escolha para SaaS & cloud
8. MySQL Cluster para serviços Web de escala
9. MySQL Enterprise Edition da Oracle
10. MySQL & NoSQL
http://www.mysql.com/why-mysql/white-papers/mysql-wp-top10-webbased-apps.php
53. Mais Flexibilidade
MySQL Cluster 7.2
Os mesmos dados
podem ser acessados
simultaneamente via
SQL & NoSQL
55. Ambiente de
desenvolvimento
MySQL em poucos minutos
56. MySQL Installer for Windows
MySQL Database, Workbench,
Connectors, Exemplos…
dev.mysql.com/downloads
57.
58.
59.
60.
61. Connectors & APIs
• Connector/ODBC • C API
• Connector/Net • PHP API
• Connector/J • Perl API
• Connector/MXJ • Python API
• Connector/C++ • Ruby APIs
• Connector/C (era libmysql) • Tcl API
• Connector/OpenOffice • Eiffel Wrapper
• libmysqld (embedded library)
• Connectors: conectividade ao MySQL para programas clientes
• APIs: acesso de baixo-nível ao protocolo MySQL e recursos do servidor.
dev.mysql.com/usingmysql
65. 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/
67. MEB: 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
69. MySQL Cluster Manager
Gerenciamento Operações de
Monitoramento
Automatizado Alta Disponibilidade
• Gestão de • Monitoramento do • Persistência
Todo Cluster Estado & de Disco
Recuperação
• Gerenciamento de • Consistência de
Processos Configuração
• Operações On-line
(Reconfiguração • Agente de
/Upgrade) Operação de Alta
Disponibilidade
70. Como o MySQL Cluster Manager Ajuda?
Examplo: Upgrade do MySQL Cluster 6.3 to 7.1
Sem MySQL Cluster Manager Com MySQL Cluster Manager
• 1 x verificação preliminar do estado do Cluster upgrade cluster --package=7.1 mycluster;
• 8 x comandos ssh por servidor
Total: 1 Comando
• 8 x comandos stop por processo
• 4 x edições dos arquivos de configuaração (2 x Resultados
mgmd & 2 x mysqld) Redução de overhead e simplificação de
• 8 x comandos start por processo administração.
• 8 x verificações do processo start e re-joined Reduz risco de downtime por erro do
• 8 x verificações de processos completos administrador.
• 1 x verificação de todo o cluster.
• Reedição manual de cada arquivo de configuração.
Total: 46 comandos – 2h30min. de interação
71. Integração de produtos
Oracle GoldenGate
Oracle Enterprise Linux + Oracle VM
Certificação Oracle Fusion Middleware
Oracle Secure Backup
Certificação Oracle Clusterware (em progresso) +
Oracle Audit Vault (em progresso)
Oracle Enterprise Manager (em progresso)
72. Treinamentos e Certificações MySQL
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 MySQL Advanced
Opcional
Availability Stored Procedures
Necessário
MySQL Cluster
education.oracle.com
75. Sumário
9 dos 10 websites mais acessados na Internet usam MySQL. Há
pelo menos 10 boas razões para isso, conforme vimos nesta
apresentação.
Baixe e instale um ambiente de desenvolvimento completo em
menos de 10min.
Profissionalize o uso do MySQL com cursos oficiais Oracle,
certificações e oferta Enterprise.
O MySQL é o Banco de Dados Open Source mais popular do
mundo e estamos trabalhando para um MySQL ainda melhor!