MySQL: o banco de dados open source mais popular do mundo
-
Upload
mysql-brasil -
Category
Technology
-
view
3.925 -
download
1
description
Transcript of MySQL: o banco de dados open source mais popular do mundo
<Insert Picture Here>
Airton Lastori [email protected]
mai-2012
MySQL O Banco de Dados Open Source
mais popular do mundo
Alguns clientes
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
Por que o MySQL é a escolha
para aplicações Web destas e
de milhares de outras
empresas?
Agenda
• história do MySQL
• razões para utilizar MySQL em web apps
• ambiente de desenvolvimento MySQL
• uso profissional e certificado do MySQL
MySQL
uma história de sucesso
Conhecendo melhor o MySQL
MyISAM e mSQL
Nova interface SQL com
arquitetura mais flexível
Nome MySQL dado
pelo co-fundador
Monty Widenius, surge a
MySQL AB
Cresce o ecosistema
MySQL, pautado no
modelo open
source
MySQL Cluster é
adquirido da Ericsson
pela MySQL AB
MySQL AB é adquirida pela
Sun Microsystems
Sun Microsystems é adquirida pela
Oracle
razões para utilizar o MySQL em
web apps
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
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
Filesystems, Files and Logs
Redo, Undo, Data, Index, Binary, Error, Query and Slow
Connectors
Native C API, JDBC, ODBC, .Net, PHP, Ruby, Python, VB, Perl
Connection Pool
Authentication – Thread Reuse – Connection Limits – Check Memory – Caches
Enterprise Management
Services and Utilities
Backup & Recovery
Security
Replication
Cluster
Partitioning
Instance Manager
Information_Schema
MySQL Workbench
SQL Interface
DDL, DML, Stored
Procedures, Views,
Triggers, Etc..
Parser
Query Translation,
Object Privileges
Optimizer
Access Paths,
Statistics
Caches
Global and Engine
Specific Caches and
Buffers
Pluggable Storage Engines
Memory, Index and Storage Management
InnoDB MyISAM Cluster Etc… Partners Community More..
MySQL Server Clients and Apps
Arquitetura MySQL Server
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
Rápido Gerenciamento de Conexões
Connectors
Native C API, JDBC, ODBC, .Net, PHP, Ruby, Python, VB, Perl
Connection Pool
Authentication – Thread Reuse – Connection Limits – Check Memory – Caches
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
NoSQL com Memcached API acessando InnoDB,
otimizador melhorado,
store engines mais inteligentes,
melhor instrumentação...
labs.mysql.com
MySQL Server 5.6 DM DEVELOPMENT
MILESTONE
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
Baixo custo total de propriedade
- Modelo Open Source
- Hardware commodity
- Escalabiliade horizontal e incremental
- Fácil manutenção
- Edição Enterprise com excelente TCO
Menor TCO
mysql.com/tco
Custo Total de Propriedade
até 96% menor que o
SQL Server 2012.
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
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?
1. Operação de Escrita
Aplicação
2. Mudanças
escritas no binlog
Replicação MySQL: como funciona 1/3
4. SQL Thread
aplica mudanças
do relaylog para o
MySQL
3. I/O Thread copia
mudanças do binlog
para relaylog
Master Slave
• Recurso nativo do MySQL
• Slave adiciona carga mínima ao Master
Aplicação
Replicação MySQL: como funciona 2/3
Master Slave
• Modelo Ativo-passivo
• Master: ativo
• Slave: passivo
Escritas & Leituras
Aplicação
Replicação MySQL: como funciona 3/3
Master Slave
Escritas & Leituras
• Fail-over
• Master: down
• Slave: ativo
• 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
Outros usos da replicação
Aplicação
Replicação MySQL: como escalar 1/2
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)
Escritas & Leituras Leituras
Replicação MySQL: como escalar 2/2
Leituras Leituras
• Escreva para 1 Master
• Leia de vários Slaves, adicione mais quando necessário
• Perfeito para aplicações de leitura intensiva
Aplicação
Replicação MySQL
Load Balancer
Master Slave Slave
Escritas & Leituras
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
MySQL 5.5 SysBench Benchmarks
MySQL 5.1.40 (InnoDB built-in)
MySQL 5.1.40 (InnoDB Plug-in)
MySQL 5.5.4 (New InnoDB)
Intel Xeon X7460 x86_64
4 CPU x 6 Cores/CPU
2.66 GHz, 32GB RAM
Fedora 10
364% ganho de desempenho for MySQL 5.5 over 5.1.40; at scale
MySQL 5.5 SysBench Benchmarks
Intel Xeon X7460 x86_64
4 CPU x 6 Cores/CPU
2.66 GHz, 32GB RAM
Fedora 10
MySQL 5.1.40 (InnoDB built-in)
MySQL 5.1.40 (InnoDB Plug-in)
MySQL 5.5.4 (New InnoDB)
200% ganho de desempenho for MySQL 5.5 over 5.1.40; at scale
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
Confiabilidade: Robustez
- Oracle QA
- processo
- testes
- Modelo Open Source
- labs.mysql.com
- comunidade numerosa e atuante
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
Alta disponibilidade
Alta disponibilidade
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
LAMP Stack
Operating
System
Application
Server
Database
Scripting
L
A
M
P
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
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
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
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
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
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
Data Nodes
Node Group 1
F1
F3
Da
ta N
od
e
Node Group 2
F2
F4
Da
ta N
od
e
Cluster
Mgmt
MySQL Cluster: como funciona 1/3
Aplicação
Auto-Sharding
SQ
L N
od
e
ndb ndb
Data Nodes
Node Group 1
F1
F3
F3
F1
No
de
1
No
de
2
Node Group 2
F2
F4
F4
F2
No
de
3
No
de
4
Application Nodes
Cluster
Mgmt
Cluster
Mgmt
LDAP REST
MySQL Cluster Application Nodes
NDB API
MySQL Cluster: como funciona 2/3
Replicação
Síncrona
Node Group 1 Node Group 2
Node Group 1
F1
F3
F3
F1
No
de
1
No
de
2
Node Group 2
F2
F4
F4
F2
No
de
3
No
de
4
Application Nodes
Cluster
Mgmt
Cluster
Mgmt
LDAP REST
MySQL Cluster Application Nodes
NDB API
MySQL Cluster: como funciona 3/3
Replicação
Síncrona
Self-Healing Geo-Replicação
Node Group 1 Node Group 2
MySQL Cluster 7.2: 1 Bilhão Queries por Minuto
0
200
400
600
800
1.000
1.200
2 4 8
Milh
ões
Número de Data Nodes
SELECT Queries / Minuto
0
20
40
60
80
100
120
4 8
Milh
ões
Número de Data Nodes
UPDATE Queries / Minuto
8 x Servidores Intel “Commodity”
2 x processadores 6-core 2.93GHz
x5670 (24 threads)
48GB RAM
Linux OS
Infiniband networking
flexAsynch benchmark
C++ NoSQL API (NDB API)
“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
Caso de sucesso
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
mysql.com/products
MONITOR
BACKUP
Produtos
MY ORACLE SUPPORT
KNOWLEDGE BASE MySQL
MySQL CONSULTATIVE SUPPORT
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
MySQL Cluster 7.2
Os mesmos dados
podem ser acessados
simultaneamente via
SQL & NoSQL
Mais Flexibilidade
MySQL 5.6: NotOnlySQL: Memcached API
Ambiente de
desenvolvimento
MySQL em poucos minutos
MySQL Database, Workbench,
Connectors, Exemplos…
MySQL Installer for Windows
dev.mysql.com/downloads
• Connector/ODBC
• Connector/Net
• Connector/J
• Connector/MXJ
• Connector/C++
• Connector/C (era libmysql)
• Connector/OpenOffice
• libmysqld (embedded library)
• C API
• PHP API
• Perl API
• Python API
• Ruby APIs
• Tcl API
• Eiffel Wrapper
Connectors & APIs
• Connectors: conectividade ao MySQL para programas clientes
• APIs: acesso de baixo-nível ao protocolo MySQL e recursos do servidor.
dev.mysql.com/usingmysql
Integração Visual Studio + MySQL via Connector/NET
Profissionalizando o MySQL
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!
MySQL Enterprise Monitor
http://mysql.com/trials/
MEB: Backups
Backups são até 3.5x mais rápidos do que mysqldump
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
MEB: Compressão do Backup
O tamanho do Backup é reduzido de 65% até 93%
Operações de
Alta Disponibilidade
• Persistência
de Disco
• Consistência de
Configuração
• Agente de
Operação de Alta
Disponibilidade
MySQL Cluster Manager
Gerenciamento
Automatizado
• Gestão de
Todo Cluster
• Gerenciamento de
Processos
• Operações On-line
(Reconfiguração
/Upgrade)
Monitoramento
• Monitoramento do
Estado &
Recuperação
Como o MySQL Cluster Manager Ajuda?
Examplo: Upgrade do MySQL Cluster 6.3 to 7.1
• 1 x verificação preliminar do estado do Cluster
• 8 x comandos ssh por servidor
• 8 x comandos stop por processo
• 4 x edições dos arquivos de configuaração (2 x
mgmd & 2 x mysqld)
• 8 x comandos start por processo
• 8 x verificações do processo start e re-joined
• 8 x verificações de processos completos
• 1 x verificação de todo o cluster.
• Reedição manual de cada arquivo de configuração.
Total: 46 comandos – 2h30min. de interação
Sem MySQL Cluster Manager Com MySQL Cluster Manager
upgrade cluster --package=7.1 mycluster;
Total: 1 Comando
Resultados Redução de overhead e simplificação de
administração.
Reduz risco de downtime por erro do
administrador.
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)
+
Treinamentos e Certificações MySQL
MySQL Boot Camp
Accelerated
MySQL Performance
Tuning Boot Camp
Accelerated
MySQL for Begginers
MySQL for Database
Administrators
MySQL Performance
Tuning
MySQL High
Availability
MySQL Cluster
MySQL DBA
MySQL Boot Camp
Accelerated
MySQL for Developers
MySQL Performance
Tuning Boot Camp
Accelerated
MySQL for Begginers
MySQL and PHP
Developing Dynamic
Web Applicationg
MySQL Advanced
Stored Procedures
MySQLDeveloper
Treinamentos Certificações
Opcional
Necessário
education.oracle.com
Downloads & Trials
dev.mysql.com
edelivery.oracle.com
Documentação, Blogs & Fóruns
dev.mysql.com/doc
planet.mysql.com
forums.mysql.com
Artigos & Casos de Sucesso
mysql.com/why-mysql/white-papers
mysql.com/customers
Links
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!
Obrigado!
@MySQLBR