MySQL - o banco de dados open source mais popular do mundo

Preview:

DESCRIPTION

 

Citation preview

<Insert Picture Here>

Airton Lastori airton.lastori@oracle.com

set-2011

MySQL O Banco de Dados Open Source

mais popular do mundo

The preceding is intended to outline our

general product direction. It is intended for

information purposes only, and may not be

incorporated into any contract. It is not a

commitment to deliver any material, code, or

functionality, and should not be relied upon in

making purchasing decisions.

The development, release, and timing of any

features or functionality described for

Oracle’s products remains at the sole

discretion of Oracle.

Alguns clientes

fonte: alexa.com/topsites 17-ago-2011

Top websites

Quem usa MySQL – Top 10 Websites

1.Google

2.Facebook

3.Youtube

4.Yahoo!

5.Blogger.com

6.Baidu.com

7.Wikipedia

8.Windows Live

9.Twitter

10.QQ.com

fonte: alexa.com/topsites 17-ago-2011

dúvida:

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

• como alguns clientes implantam o 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

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

Baixo custo total de propriedade

- Modelo Open Source

- Hardware commodity

- Escalabiliade horizontal e incremental

- Fácil manutenção

- Edição Enterprise com excelente TCO

MySQL vs MS-SQL Server

mysql.com/tcosavings

Duração • 3 anos

Configuração e hardware • Web application

(Unlimited Users)

• Windows

• Intel x86

• Servers: 4

• CPUs/Server: 4

• Cores/CPU: 4

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

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?

Writes & Reads Reads Reads

• 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

Replicação possibilita escalabilidade

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

GA

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

GA

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

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

% 9 9 9 9 35 dias 4 days 50 min 5 min 8 horas

Replicação

Clustering &

Virtualização

Clustering &

Redundância

Geográfica

ISPs &

Corporativo

On-Line

Services

eCommerce

Telecoms

Militar

. 9 .

4 dias

Cu

sto

& C

om

ple

xid

ad

e

Alta disponibilidade

% 9 9 9 9 35 dias 4 days 50 min 5 min 8 horas

Replicação

Clustering &

Virtualização

Clustering &

Redundância

Geográfica

ISPs &

Corporativo

On-Line

Services

eCommerce

Telecoms

Militar

.

Replicação

9 . 4 dias

3rd Party Solutions

Oracle Clusterware

Cu

sto

& C

om

ple

xid

ad

e

Alta disponibilidade

Oracle VM Servers

Oracle VM Server Pool

ocfs2

Oracle VM

Manager

SAN / iSCSI

Secure Live

Migration (SSL)

Oracle VM

Automatic Fault

Detection &

Recovery

MySQL e Oracle Virtual Machine

Oracle VM

Eventos

Planejados: • Maintenance or

upgrades

• Secure Live Migration

• Zero interruption

Falhas • Server, VM or

database failure

• HA Auto-restart in

pool

• Automatic failure

detection & recovery

App

Virtual IP

Data Bin

Slave App App

Vote

MySQL e Windows Clustering

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

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

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

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

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

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

Arquitetura MySQL Cluster

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

Arquitetura MySQL Cluster

Aplicações Web de Grande Porte Visão Detalhada

MySQL Cluster 7.1 Benchmarks

Performance +4 Milhões de Queries por Segundo! • 8 servidores Intel commodity

• CPU 2.93GHz, 6 core Intel

• 24GB RAM cada

• 2 Data Nodes por servidor

Escalabilidade horizontal em hardware commodity • Com 16 servidores, chegou-se a

6,82 Milhões QPS

• baixo TCO

Resultados confirmados • mikaelronstrom.blogspot.com

• Iniciativa independente

• 2 dias de testes

MySQL Cluster 7.2

Adaptative Query Localization • Alguns Joins executados nos Data

Nodes

• Ganhos de performance de 50x

Mais flexibilidade • Adição de até 512 colunas e online

• User Tables no Cluster

DM DEVELOPMENT

MILESTONE

“Docudesk relies on MySQL Cluster to support our

DocQ SaaS offering which demands high update

rates, low latency and continuous availability from

the database. Testing of Adaptive Query

Localization has yielded over 20x higher

performance on complex queries within our

application, enabling Docudesk to expand our use

of MySQL Cluster into a broader range of highly

dynamic web services.” --Casey Brown

“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

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

MySQL 5.6: NotOnlySQL: Memcached API

MySQL Cluster 7.2

Os mesmos dados

podem ser acessados

simultaneamente via

SQL & NoSQL

Mais Flexibilidade

MySQL Cluster 7.2: NotOnlySQL: Memcached API

• Construa serviços de escrita intensiva e de

alta disponibilidade com MySQL Cluster

back-end

• Acessados via memcached API

• Consolide as camadas de caching e

database

• Use clientes memcached existentes evitando

mudanças nas aplicações

• Suporte para cargas altas de updates, elimine

cache invalidation

• High Availability data store escalável e persistente

• Reúso simplificado dos dados ao longo dos

serviços

• Implementação

• NDB plug-in para memcached server

• Acesso direto à API NDB

estudos de casos

READS

WRITES

Clie

nts

Master

Slaves

Replicação do MySQL Server

Benefício-chave

• O MySQL permite economias

significativas com custos de

hardware, adicionando novos

servidores commodity de

acordo com o necessário e de

maneira incremental

Por que MySQL? • Capacidade de escalar

conforme necessidade e de

maneira incremental

• Baixos custos e flexibilidade

Wikipedia

mysql.com/customers

Caso de sucesso

Master

Slave

Clie

nts

Slaves

Master

Relay

Reads

Writes

Relays: aplicações de leitura intensiva

Sharding: aplicações de escrita intensiva

Master

Slave

Clie

nts

Slaves

Shards

Reads

Writes

Partitioning Logic

1 2 3 4 5

Benefícios-chave

• Flexibilidade para escolher o

hardware

• Implementação incremental

• Simplicidade e facilidade de uso

• Por que MySQL? • Capacidade de escalar para 5

bilhões de page views por mês,

gerando 1 escrita para cada 1,4

leituras

• Flexibilidade para crescer de

maneira incremental e com baixos

custos

mysql.com/customers

Caso de sucesso

arquiteturas mistas

Scale Out

Commodity Intel / AMD

Software open source

Liberdade de plataforma

Adiciona mais servidores para

aumentar performance

Scale Up

Hardware proprietário (SMP)

Software proprietário ou open

source

Amarrado à plataforma

“Empilhamento” para

aumentar performance

Escalabilidade: horizontal vs vertical

Enterprise Manager

Audit Vault

Secure Backup

DBAs

Sysadmins

Custo

mers

Web Servers

Application Servers

Distributed Caching

MySQL Cluster

MySQL (InnoDB)

MySQL (MyISAM)

Web Servers

Frontend

ETL/Data Integration Application Integration

ERP CRM

Intranet Apps

Oracle Exadata

Oracle RAC Oracle RAC

Oracle MySQL

Em

plo

yees

Suppl.

Ba

cke

nd

MySQL + Oracle

Benefícios-chave

• Ao migrar do Microsoft SQL Server

para MySQL+Oracle, foi possível

escalar 4 vezes mais e crescer a

base de usuários de 10 milhões para

100 milhões

Por que MySQL+Oracle?

• "At Ticketmaster, we use MySQL and Oracle to complement each other. The end result is a highly-distributed, optimal-performing database environment that powers one of the largest e-commerce and ticketing sites in the world.”

Ed Presz – Sr. Director Database Engineering

Ticketmaster/Live Nation Entertainment, Inc.

mysql.com/customers

Caso de sucesso

Benefícios-chave

• Sistema escalável, de baixo custo e

personalizado para atender

necessidades de gerenciamento de

sessão.

• Gerencia 4 bilhões de request por dia

numa razão 50/50 entre leituras e

escritas.

Por que MySQL+Oracle?

• Custo

• Performance: 13.000 TPS numa Sun

Fire x4100

• Escalabilidade: desenhado para

suportar crescimento futuro de 10x

• Transações realizadas pelo Oracle

Database

mysql.com/customers

Caso de sucesso

Ambiente de

desenvolvimento

MySQL em poucos minutos

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

GA

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

GA

MEB: Compressão do Backup

O tamanho do Backup é reduzido de 65% até 93%

GA

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

em progresso

Oracle GoldenGate (GA)

Oracle Enterprise Linux + Oracle VM (GA)

Certificação Oracle Clusterware

Certificação Oracle Fusion Middleware

Oracle Secure Backup (GA)

Oracle Audit Vault

Oracle Enterprise Manager

+

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

Obrigado!

Time MySQL Brasil

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

Twitter

@MySQLBR

Recommended