SlideShare uma empresa Scribd logo
MySQL para Desenvolvedores de Produto
Julho 2014
Airton Lastori
airton.lastori@oracle.com
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.2
Objetivos
 Entender como o MySQL pode ajudá-lo com seu produto
 Conhecer as novidades do universo MySQL que podem
ajudar na construção ou migração de um
produto/aplicação
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.3
Ciclo evolutivo do produto/aplicação
Identificação do Mercado e
Modelo de Negócios1
Análise e Especificação
de Requisitos2
Arquitetura e
Prototipagem3
Implementação e Testes4
Empacotamento e
Distribuição5
Manutenção
Correções e atualizações/migrações6
n iterações
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4
Ciclo evolutivo do produto/aplicação
Identificação do Mercado e
Modelo de Negócios1
Análise e Especificação
de Requisitos2
Arquitetura e
Prototipagem3
Implementação e Testes4
Empacotamento e
Distribuição5
Manutenção
Correções e atualizações/migrações6
n iterações
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.5
Por que MySQL?
 MySQL como parte integral do seu produto
 Oracle como Parceira
 Investimento Oracle no MySQL
 Casos de sucesso
 Devo migrar para MySQL?
Visão de Negócios
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.9
Oracle MySQL para ISV e OEM
MySQL Community Edition
– Distribuído ao cliente final empacotado
com código aberto de seu produto
– Uso Interno, SaaS, Cloud
MySQL Enterprise Edition
– Uso Interno, SaaS, Cloud
MySQL Comercial (OEM)
– Distribuído ao cliente final empacotado
com código proprietário
Sem suporte e
ferramentas
Enterprise
Licença perpétua +
19% de suporte anual
Suporte Oracle via Parceiro
Subscrição Anual
Suporte direto da Oracle
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.10
Tomas Ulin
 [video]
youtube.com/watch?v=8stNlpJm_nA
 [slides]
mysql.com/why-
mysql/presentations/raising-the-
mysql-bar
VP de Engenharia do MySQL na Oracle
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.11 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.11
COMPONENTES
da pilha
MySQL: Aplicações Web da próxima geração
On-Premises, na Nuvem, Aplicações Distribuídas
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.12
Elevando o nível
Novamente, um melhor MySQL para vocês
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.13
s
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.15
Compromisso Oracle com MySQL
https://blogs.oracle.com/MySQL/entry/mysql_connect_keynotes_and_news
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.16
Bem-vindo, WebScaleSQL!
 Branch do MySQL 5.6, com patches para uso em Escala Web
 Investimentos de gigantes da Web para melhorar o MySQL
 Ótima notícia para a comunidade e novos desenvolvedores
 Ainda mais fácil a cooperação entre Oracle e as gigantes da Web
Facebook, Google, LinkedIn & Twitter!
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.17
Alguns clientes MySQL
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.18
Motivos para migração
 otimizar custos e reduzir riscos
– licenciamento, suporte
 aumentar faturamento
– expandir base, mudar modelo de negócios / distribuição
 outras soluções já não atendem mais tecnicamente (ex. flat file)
 portabilidade
 facilidade de uso e flexibilidade
 escalabilidade e alta-disponibilidade
Quando custos+riscos da migração são
compensados pelos ganhos?
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.19
Ciclo evolutivo do produto/aplicação
Identificação do Mercado e
Modelo de Negócios1
Análise e Especificação
de Requisitos2
Arquitetura e
Prototipagem3
Implementação e Testes4
Empacotamento e
Distribuição5
Manutenção
Correções e atualizações/migrações6
n iterações
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.20
Qual Banco de Dados devo usar?
 Quais as principais características técnicas?
 Quem, por que e onde está usando?
 Onde posso usar no meu contexto?
 Qual o futuro da tecnologia?
 Continua em desenvolvimento?
Escolher a tecnologia correta de acordo com requisitos
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.21 Fonte: http://db-engines.com/en/ranking_trend (maio/14)
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.22
Características técnicas do MySQL
Lista mais abrangente no site, aqui abordaremos apenas algumas
mysql.com/products/enterprise/techspec.html
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.23
Onde o MySQL geralmente se encaixa
• Novas aplicações e aplicações customizadas Ad-hoc
• principalmente arquitetura Web (ex. LAMP stack)
• arquiteturas inovadoras, NoSQL (versão 5.6 e Cluster 7.2)
• Aplicações híbridas
• expansão de sistemas legados
• MySQL como front-end e Oracle DB como back-end
• Online, SaaS e Mobile
• E-commerce/OLTP e pagamentos digitais
• Gerenciamento de Conteúdo (CMS)
• Redes Sociais, mensagens e colaboração
• Games Sociais e MMO
• SMS, e-marketing
• Datamarts e Relatórios Departamentais
• Embarcadas, Infra Telecom, Infra TI
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.24
Call Detail Records (CDR) para suportar Billing, gestão de dispositivos, troubleshooting de
redes, provisionamento e telemetria.
Transaction Detail Records que é uma variante do CDRs com foco em troubleshooting.
Recomendações Online – Cross-promotion. Coleta várias informações sobre as preferências do
cliente toda vez que ele é “tocado” pela operadora.
Traditional E-Commerce – Carrinho de compra, etc.
D2C (Demand-to-Close) – Essencialmente um workflow que rastreia um “lead” no ciclo de vida
até que ele vire um negócio (cliente).
Call Center Queueing – Normalmente uma aplicação em cima do software do call center da
empresa para gerir o tempo de espera dos seus clientes (McDonalds, Apple, etc)
Customer Care Intranet - O caso da Verizon
Outros usos em Telco
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.25
Desafio
Fornecer uma plataforma para os funcionários onde eles poderiam trabalhar em redes sociais, visualizar e hostear microsites,
live streaming de vídeos, blog e divulgar as últimas notícias.
TI decidiu usar o LAMP stack para suportar seu portal 24x7 de missão crítica (Vzweb, Vzwiki e Vztube), com o Drupal como
front-end e MySQL no Linux como o backend, e alguns outros sites internos também em MySQL.
Acessível aos 78.000 funcionários
SLA 99,985%
https://blogs.oracle.com/MySQL/entry/verizon_wireless_supports_its_mission
Solução
MySQL 5.5 in 2011
InnoDB store engine
MySQL Enteprise Thread Pooling
Resultado
"MySQL é um componente chave em nosso portal, disse Shivinder Singh, DBA sênior da Verizon Wireless. “Alcançamos uma
melhoria de desempenho de 1400% ao passar do store engine de MyISAM para InnoDB, atualizando para a última versão GA
MySQL 5.5, e usando o MySQL Thread Pool para suportar um alto número de conexões simultâneas. MySQL tornou-se parte
de nossa infra-estrutura de TI"
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.26
Desafio
Como em qualquer sistema de processamento de pagamentos financeiros, a construção de um sistema altamente confiável
com disponibilidade 24x7 é a primeira prioridade. A Paggo não pode dar ao luxo de perda de dados. Perda de dados resulta em
perda de negócios. A Paggo teve de construir um sistema que poderia crescer e performar conforme novos comerciantes e
compradores cresciam, aumentando as transações. Em cima disso, Paggo é uma startup com um orçamento limitado, então
tivemos que começar pequeno, com a capacidade de escalar a infra-estrutura incrementalmente, sem custos iniciais enormes.
40.000 comerciantes, 1.2 milhões de assinantes e 750.000 transações financeiras/mês
99,999% uptime
Solução
MySQL Cluster
Resultado
"Paggo não teria sido possível sem o MySQL Cluster. Nenhum outro produto poderia nos dar a capacidade de começar
pequeno, escalar rapidamente e fornecer para o nosso sistema de pagamento financeiro 24x7 disponibilidade."
Cícero Torteli
Fundador, Paggo
http://www.mysql.com/why-mysql/case-studies/paggo-mysql-cluster-java-financial-transactions-over-telecom/
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.27
MySQL Enterprise Monitor 2.2
MySQL Cluster 7.1
MySQL Cluster Manager 1.0
MySQL Workbench 5.2
MySQL Database 5.5
MySQL Enterprise Backup 3.5
MySQL Enterprise Monitor 2.3
MySQL Cluster Manager 1.1
MySQL Enterprise Backup 3.7
All GA!
Oracle VM Template for MySQL
Oracle Products Certifications
MySQL Windows Installer
MySQL Enterprise Security
MySQL Enterprise Scalability
MySQL Cluster 7.2
MySQL Cluster Manager 1.3
MySQL Utilities 1.0.6
MySQL Workbench 6.0
All GA!
MySQL Enterprise Backup 3.10
MySQL Enterprise Audit
MySQL Windows Tools
MySQL Database 5.6
MySQL Cluster 7.3
MySQL Workbench 6.1
MySQL Fabric 1.4 RC
MySQL Database 5.7 DMR
*Development Milestone Release
All GA!
Available Now!
Breve histórico: 2010 - 2014
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.28
5.7 DMR 1
Abril 2013
DMR 2
Set 2013
DMR 3
Dez 2013
DMR 4
Novas funcionalidades
labs.mysql.com
Disponível Agora!
...
5.6 GA
Fev 2013
Anunciado o MySQL 5.7 DMR 4
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.31
MySQL 5.7: DMR 4
 InnoDB: melhor throughput transacional, disponibilidade, IO
 Replication: melhor escalabilidade e disponibilidade
 Utilities: facilidades para automação e DevOps
 Performance Schema: melhores métricas e diagnósticos
 Optimizer: melhores tempos nas queries, EXPLAINs, buffering
e particionamento
 Connections: taxas mais altas, sessões mais eficientes
O MySQL 5.7 é o MySQL 5.6 + melhorias!
Saiba mais: slideshare.net/MySQLBR/novidades-do-universo-mysql-maioi-2014
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.32
Ciclo evolutivo do produto/aplicação
Identificação do Mercado e
Modelo de Negócios1
Análise e Especificação
de Requisitos2
Arquitetura e
Prototipagem3
Implementação e Testes4
Empacotamento e
Distribuição5
Manutenção
Correções e atualizações/migrações6
n iterações
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.33
MySQL é adequado para o meu produto?
 Quais conceitos fundamentais para uso correto do MySQL?
 Quais plataformas e linguagens posso utilizar?
 Quais os limites da tecnologia?
 Quais recursos de alta-disponibilidade (HA) e escalabilidade?
 Quais recursos de segurança?
Dúvidas técnicas, requisitos não funcionais
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.34
Aplicação + Connector
JDBC, ODBC, .Net, PHP, Python, Perl, Ruby, Native C API…
MySQL Database
mysqld
Cliente-Servidor
Gerenciamento
mysql / monitor / backup
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.35
Aplicação
+
MySQL Database
libmysqld
libmysqld
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.36
Client-server vs libmysqld
client-server
(embedded, SaaS, Web, etc.)
• Comunica com a aplicação usando
MySQL Connectors ou APIs
• Executado como services/daemons
ou via linha de comando
• Deve ser incluído como parte da
instalação da aplicação
• A instalação e manutenção pode
ser invisível ao usuário final
libmysqld
(deeply embedded)
• Comunicação restrita a chamadas
diretas em C
• Linkado diretamente na aplicação
• Não requer instalação
(services/daemons)
• Uso em aplicações com banco de
dados auto-contido
• Algumas limitações: mais footprint
de memória, sem replicação, UDFs,
core dumps, traces, etc.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.37
Plataformas suportadas
 Hardware
– 32 e 64 bit x86
– SPARC
 Sistemas Operacionais
– Windows
– Linux
– MacOS
– FreeBSD
– Solaris
Maior portabilidade, mais liberdade de escolha
mysql.com/support/supportedplatforms/database.html
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.38
Amplo suporte a várias linguagens
Várias opções de conectores e APIs
Oracle
• Connector/ODBC
• Connector/Net (ADO.NET)
• Connector/Python
• Connector/J (JDBC)
• Connector/C (C API)
• Connector/C++ (C++ API)
• Memcached API
• MySQL for Excel
Comunidade
• PHP
• Perl
• Ruby
• TCL
• Eiffel
• Arduino
• …
dev.mysql.com/doc/refman/5.6/en/connectors-apis.html
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.39
Enterprise Management
Services and Utilities
Backup & Recovery
Monitor
Workbench
Utilities
Connection Pool, SQL Interface, Parser, Optimizer, Caches
Clients & Connectors
Native C API, JDBC, ODBC, .Net, PHP, Ruby, Python, VB, Perl mysqld
Clients and Apps
Arquitetura MySQL Server
Storage Engines
InnoDB, MyISAM, Memory, Archive, Cluster (NDB API), etc…
Filesystems, Files & Logs
Data, Index, Logs…
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.40
Cluster Data Nodes
NDB NDB
Connection Pool, SQL Interface, Parser, Optimizer, Caches
Enterprise Management
Services and Utilities
Backup & Recovery
Monitor
Workbench
Utilities
Clients & Connectors
Native C API, JDBC, ODBC, .Net, PHP, Ruby, Python, VB, Perl
Arquitetura MySQL Cluster
Storage Engines
InnoDB, MyISAM, Memory, Archive, Cluster (NDB API), etc…
Filesystems, Files & Logs
Data, Index, Logs…
mysqld
Clients and Apps
ndbd
mgm_ndbd
Management
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.41
Storage Engines
MyISAM InnoDB NDB Cluster
Transações ✖ ✔ ✔
Nível de Lock Tabela Linha Linha
Replicação
Assíncrona ou
Semi-síncrona
Assíncrona ou
Semi-síncrona, crash-safe
Síncrona, Multi-master,
crash-safe sem SPOF
Foreign Keys ✖ ✔ ✔
Full-text indexes ✔ ✔ ✖
Compressão de dados somente Leitura ✔ ✖
Caches somente Índices Dados e Índices Dados e Índices
Suporte Geoespacial Tipos de Dados e Índices Somente Tipos de Dados somente Tipos de Dados
Limite de armazenamento 256TB 64TB 384EB (~3TB em RAM)
dev.mysql.com/doc/refman/5.6/en/storage-engines.html
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.42
Default Storage Engine
InnoDB
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.43
Acesso chave-valor ao InnoDB
Via Memcached API
Usa clients Memcached existentes
Sem SQL parsing, ultra-rápido
Acesso SQL e NotOnlySQL
Operações chave-valor mas também
queries SQL, JOINs, FKs, etc.
Memcached com Persistência
no InnoDB
Método transparente para persistir os
dados em memória volátil
Memcached plug-in no mysqld ,
mapeado à API nativa do InnoDB
Shared process para baixa latência
SQL
(MySQL Client)
InnoDB Storage Engine
MySQL Server Memcached plugin
Application/Client
NoSQL
(Memcached Prot.)
mysqld
http://dev.mysql.com/doc/refman/5.6/en/innodb-memcached.html
Flexibilidade MySQL 5.6: InnoDB
NoSQL com Memcached
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.44
2008
até 4 CPU
MySQL 5.0
MySQL AB
até 16 CPU
MySQL 5.1
Sun
até 32 CPU
MySQL 5.5
Oracle
até 48 CPU
MySQL 5.6
Evolução da escalabilidade do MySQL
2009 2010 2013
Atualize o MySQL e use InnoDB.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.45
MySQL 5.6: GA há 17 meses
•Performance: +234% para Leituras e +151% para Escritas, SSD
•Escalabilidade: 48 cores
•Flexibilidade: Memcached API, Full Text
•Disponibilidade: mudanças online no schema, export/import tablespaces
InnoDB
•Performance: até centenas de vezes mais rápido em alguns cenários,
estatísticas persistentes
•Instrumentação: EXPLAINS com traces e para UPDATES e DELETES
Otimizador
•Performance: ganhos de 2x a 5x com paralelismo e group commit
•Flexibilidade: novas topologias e rastreabilidade com GTIDs
•Disponibilidade: automatização de failover e recovery
Replicação
•PERFORMANCE_SCHEMA mais completaInstrumentação
•Segurança
•Facilidade de uso
•Flexibilidade
•...E MAIS...
Outras melhorias
dev.mysql.com/tech-resources/articles/mysql-5.6-rc.html
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.46
 PERFORMANCE_SCHEMA
 Novas configurações padrão, mais adequadas ao hardware atual
 Particionamento melhorado
 import/export
 mais capacidade e performance
 seleção explícita
 Backup remoto do Binlog
 Slaves com atraso programado
 Identificador único universal para servidor (server UUID)
 TIME/TIMESTAMP/DATETIME
 precisão de fração de segundo, CURRENT_TIMESTAMP default /auto update, TIMESTAMP nullable por padrão
 GIS: operações espaciais precisas
 E MAIS...
Outras melhorias no MySQL 5.6
Mais facilidade de uso e flexibilidade
mysql.com/why-mysql/white-papers/whats-new-mysql-5-6
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.47
MySQL 5.5.28
MySQL 5.6.7
+234% Ganhos de Performance
0
2.000
4.000
6.000
8.000
10.000
12.000
14.000
16.000
18.000
32 64 128 256 512
TransaçõesporSegundo
Conexões
MySQL 5.6 vs. 5.5 - Leituras (Linux)
Oracle Linux 6
Intel(R) Xeon(R) E7540 x86_64
MySQL leveraging:
- 48 of 96 available CPU threads
- 2 GHz, 512GB RAM
Performance MySQL 5.6: InnoDB
SysBench Benchmarks
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.48
MySQL 5.5.28
MySQL 5.6.7
+151% Ganhos de Performance
0
2.000
4.000
6.000
8.000
10.000
12.000
32 64 128 256 512
TransaçõesporSegundo
Conexões
MySQL 5.6 vs. 5.5 – Escritas+Leituras (Linux)
Oracle Linux 6
Intel(R) Xeon(R) E7540 x86_64
MySQL leveraging:
- 48 of 96 available CPU threads
- 2 GHz, 512GB RAM
Performance MySQL 5.6: InnoDB
SysBench Benchmarks
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.49
 Thread Pool Plug-In
• Adiciona mais inteligência ao modelo padrão de gerenciamento de
threads – agrupa e reutiliza
• Modelo padrão, sem Thread Pool: 1 thread por conexão,
performance excelente, mas limita a escalabilidade ao crescer o
número de conexões de usuários
• Com Thread Pool: reúso de threds, escala o número de conexões
de usuários mantendo os mesmos níveis de performance
• Implementado utilizando Thread Pool API
Assegura desempenho melhor e sustentável, mesmo quando o
número de usuários continua crescendo.
MySQL Enterprise Scalability
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.50
60x Melhor Escalabilidade comThread Pool
MySQL 5.6.11
Oracle Linux 6.3, Unbreakable Kernel 2.6.32
4 sockets, 24 cores, 48 Threads
Intel(R) Xeon(R) E7540 2GHz CPUs
512GB DDR3 RAM
Thread Pool habilitado/desabilitado
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.51
18x Melhor Escalabilidade com Thread Pool
Thread Pool habilitado/desabilitado
MySQL 5.6.11
Oracle Linux 6.3, Unbreakable Kernel 2.6.32
4 sockets, 24 cores, 48 Threads
Intel(R) Xeon(R) E7540 2GHz CPUs
512GB DDR3 RAM
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.52
Referências de Escala
Social Network
Small Medium Large Extra Large
Queries/Second <500 <5,000 10,000+ 25,000+
Transactions/Second <100 <1,000 10,000+ 25,000+
Concurrent
Read Users
<100 <5,000 10,000+ 25,000+
Concurrent
Write Users
<10 <100 1,000+ 2,500+
Database Size
Sessions <2 GB <10 GB 20+ GB 40+ GB
eCommerce <2 GB <50 GB 50+ GB 200+ GB
Analytics (Multi-Structured Data) <10 GB <1TB 10+ TB 100+ TB
Content Management (Meta-Data) <10 GB <500 GB 1+ TB 2+ TB
Saiba mais: slideshare.net/MySQLBR/arquiteturas-de-referncia-mysql
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.53
MySQL 5.7 Sysbench Benchmark
Sysbench Point Select
Intel(R) Xeon(R) CPU X7560 x86_64
5 sockets x 8 cores-HT (80 CPU threads)
2.27GHz, 256G RAM
Oracle Linux 6.5
2X mais rápido que o MySQL 5.6
Mais de 3X mais rápido que o MySQL 5.5
630,000 QPS
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.54
MySQL 5.7: InnoDB Memcached
Contribuição do Facebook
Intel(R) Xeon(R) CPU X7560 x86_64
8 sockets x 6 cores-HT (96 CPU threads)
2000Mhz, 256G RAM
Oracle Linux 6.2
6x mais rápido que o MySQL 5.6
1,150,000 QPS
0
200000
400000
600000
800000
1000000
1200000
1400000
8 16 32 64 128 256 512 1024
QueriesperSecond
Concurrent User Sessions
5.7.3
5.6
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.55
MySQL é adequado para o meu produto?
 Quais conceitos fundamentais para uso correto do MySQL?
 Quais plataformas e linguagens posso utilizar?
 Quais os limites da tecnologia?
 Quais recursos de alta-disponibilidade (HA) e escalabilidade?
 Quais recursos de segurança?
Dúvidas técnicas, requisitos não funcionais
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.56
Aplicação
Master Slave
• Modelo assíncrono (padrão)
• Modelo semi-síncrono (a partir da versão 5.5)
Escritas & Leituras
Replicação MySQL
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.57
Aplicação
Master Slave
• Master down
• Slave promovido para Master
Escritas & Leituras
MySQL failover
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.58
Replicação MySQL: escalando LEITURAS
• Divisão de leituras e escritas (R/W Split)
• É possível adicionar mais slaves, dividir a carga
Leituras
Aplicação
Master Slave
Escritas & Leituras
Slave
…
Leituras
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.59
Multi-Source Replication
 Consolida updates de múltiplos
Masters em um Slave
– Visão consolidada
– Novas topologias
– Ponto centralizado de backup
– Relatórios mais fáceis
 Compatível com Semi-Synchronous
Replication & Multi-Thread Slaves
 Master-specific slave filters
 Aplicação continua responsável por
manter data sets não-conflitantes
entre as diversas fontes
Binlog
Master 1
Binlog
Master 2
…
…
Binlog
Master N
IO 1
Relay 1
Coordinator
W1 W2 … WX
IO 2
Relay 2
Coordinator
W1 W2 … WX
…
…
Coordinator
W1 W2 … WX
IO N
Relay N
Coordinator
W1 W2 … WX
Slave
labs.mysql.com
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.60
MySQL Fabric 1.4 GA (MySQL Utilities 1.4.3)
 Alta disponibilidade:
– Monitoramento do Server com failover
automático e transparente para aplicação
 Conectores devem ser “Fabric-aware”:
– Java, PHP, Python
 Sem Proxy, sem latencia extra e SPoF
 Escalabilidade de escrita com sharding:
– Aplicação define a shard key (Range ou
Hash)
– Ferramentas para re-sharding
– Tabelas globais & global updates
Alta-disponibilidade + escalabilidade de escrita com sharding
MySQL Fabric
Connector
Application
Read-slaves
SQL
Master group
Read-slaves
Master group
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.61
API Nodes
Arquitetura MySQL Cluster
Data Nodes
ndbd ndbd
Management
mgm_ndbd
Clients
Application Layer
Data Layer
ndbd ndbd
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.62
MySQL Cluster 7.4
 Ganho de Performance sobre v7.3
– 47% (Read-Only)
– 38% (Read-Write)
Melhor performance e simplicidade operacional
labs.mysql.com
 Restarts mais rápidos dos nós
– Recovering nodes rejoin the cluster
faster
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.63
Soluções de HA homologadas pela Oracle
MySQL
Replication
MySQL
Fabric
Oracle VM
Template
Solaris
Cluster
Windows
Cluster
DRBD
MySQL
Cluster
Clustering Mode
Master +
Slaves
Master +
Slaves
Active/Pass
ive
Active/Pass
ive
Active/Passi
ve
Active/Pa
ssive
Multi-
Master
App Auto-Failover ✖ ✔ ✔ ✔ ✔ ✔ ✔
Data Layer Auto-Failover ✖ ✔ ✔ ✔ ✔ ✔ ✔
Zero Data Loss MySQL 5.7 ✔ ✔ ✔ ✔ ✔ ✔
Failover Time N/A Secs Secs + Secs + Secs + Secs + < 1 Sec
Scale-out Reads ✔ ✖ ✖ ✖ ✖ ✔
Cross-shard operations N/A ✖ N/A N/A N/A N/A ✔
Transparent routing ✖ For HA ✔ ✔ ✔ ✔ ✔
Shared Nothing ✔ ✔ ✖ ✖ ✖ ✔ ✔
Storage Engine InnoDB InnoDB InnoDB InnoDB InnoDB InnoDB NDB
Single Vendor Support ✔ ✔ ✔ ✔ ✖ ✔ ✔
Platform Support All All Linux Solaris Windows Linux All
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.64
 PAM (Pluggable Authentication Modules) Plug-In
• Autenticação externa via métodos externos
• Interface padrão, funciona com Unix, LDAP, Kerberos, outros
• Proxy-users – mapeamento grupos de usuários para 1 usuário
 Windows Plug-In
• Acesso nativo via serviços do Windows
• Autentica usuários já logados no Windows (Single Sign On)
• Grupos/usuários do Windows Active Directory com Proxy-users
Integra o MySQL com a infraestrutura de segurança existente e
SOPs. Mais produtividade na gestão de usuários.
MySQL Enterprise Security
External Authentication Plug-Ins
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.65
Authenticate
CREATE USER win_joe
IDENTIFIED WITH authentication_windows
AS ‘joe';
LDAP/AD
PAM /
Windows Auth
Usuário/senha definidos no diretório
Privilégios definidos no MySQL e
mapeados para usuários/grupos do diretório
MySQL Enterprise Security
External Authentication Plug-Ins
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.66
MySQL Enterprise Audit
 Audit Plug-In
• Registro de conexões, logins, queries dos servidores MySQL
• Políticas definidas pelo DBA para filtragem e rotação de logs
• Habilitado ou desabilitado dinamicamente, sem reiniciar o
servidor
• Log em XML de acordo com especificação padrão Oracle Audit
• Requer MySQL 5.5.28 ou superior
• Implementado através MySQL 5.5 Audit API
Adiciona conformidade regulatória em aplicações MySQL:
HIPAA, Sarbanes-Oxley, PCI, etc.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.67
2. Usuário conecta-se e executa queries
MySQL Enterprise Audit
1. DBA habilita no Server1
Server1
3. Conexões e queries dos
usuários aparecem no log
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.68
Saiba mais...
 Manual de Referência
http://dev.mysql.com/doc/refman/5.6/en/index.html
 Whitepapers, webinars, artigos...
http://www.mysql.com/why-mysql/
 Livros
– MySQL, Fifth Edition by Paul DuBois <- mais para desenvolvedores
– High Performance MySQL, 3rd Edition <- mais para dba’s
– MySQL High Availability <- desenvolvedores e dba’s
– etc, etc, etc...
 Benchmarks, Capacity Planning, Stress Testing
– Ferramentas de benchmark http://dev.mysql.com/doc/refman/5.6/en/mysql-benchmarks.html
– Benchmarks expert http://dimitrik.free.fr/blog/
Conhecimento técnico em MySQL
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.69
Ciclo evolutivo do produto/aplicação
Identificação do Mercado e
Modelo de Negócios1
Análise e Especificação
de Requisitos2
Arquitetura e
Prototipagem3
Implementação e Testes4
Empacotamento e
Distribuição5
Manutenção
Correções e atualizações/migrações6
n iterações
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.70
Usando o MySQL
 Como montar o ambiente de desenvolvimento?
 Ferramentas para o desenvolvimento
 Ferramentas para Qualidade
 Suporte ao desenvolvedor
 Onde buscar mais conhecimento?
Hello World, ferramentas e mais conhecimento
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.71
Instalação
 No Windows
– Installer ou Web Installer
– Next, next, finish
 No Linux e demais SO’s
– Prefira os binários pré-compilados da sua distribuição
– Repositórios YUM e APT disponíveis
Baixe e instale em menos de 15 minutos
 Download
– Community: dev.mysql.com/downloads ou
dev.mysql.com/downloads/repo
– Comercial: edelivery.oracle.com (trial)
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.72
Ciclo evolutivo do produto/aplicação
Identificação do Mercado e
Modelo de Negócios1
Análise e Especificação
de Requisitos2
Arquitetura e
Prototipagem3
Implementação e Testes4
Empacotamento e
Distribuição5
Manutenção
Correções e atualizações/migrações6
n iterações
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.73
Prefira os binários pré-compilados
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.74
Repositórios YUM e APT para MySQL
 Maneira simples e conveniente de instalar e atualizar produtos MySQL
 Suporta as distribuições Enterprise Linux
– RedHat Enterprise/Oracle Linux
– Fedora
– Em breve: Debian/Ubuntu
 Inclui os pacotes mais atuais
– MySQL Database
– MySQL Workbench
– MySQL Connector/ ODBC
– MySQL Connector/Python
– MySQL Utilities
Benefícios para Usuários Finais e Distribuições Linux
Também disponível via
NuGet para
desenvolvedores .NET
Mais de 50% dos
downloads para
Fedora/RedHat já são
feitos do repositório
nuget.org/profiles/MySQL
www.alastori.com.br/2014/05/tutorial-de-
instalacao-do-mysql-56-e.html
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.75
Iniciar ou Parar o servidor MySQL no Windows
…ou via MySQL Notifier
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.76
Iniciar ou Parar o servidor MySQL no Linux
/usr/local/mysql/bin> mysqld_safe --defaults-file=/etc/my.cnf &
/usr/local/mysql/bin> mysqladmin shutdown
Parar:
Iniciar:
dev.mysql.com/doc/refman/5.6/en/mysqld-safe.html
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.77
Primeira conexão
C:Program FilesMySQLMySQL Server 5.6bin>mysql -uroot -p
Enter password: ****
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 8
Server version: 5.6.14 MySQL Community Server (GPL)
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql>
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.78
Teste via MySQL Workbench 1/2
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.79
Teste via MySQL Workbench 2/2
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.80
Crie rapidamente seu protótipo
Hello World em Java
C:>set CLASSPATH
CLASSPATH=.;C:Program Files (x86)Javajre6libextQTJava.zip;C:Program
FilesMySQLmysql-connector-java-5.1.22mysql-connector-java-5.1.22-bin.jar
Confira:
Adicione o Connector ao classpath:
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.81
HelloMysql.java 1/2
import java.sql.*;
public class HelloMysql {
public static void main(String args[]){
System.out.println("Tentando conectar ao MySQL...");
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/mysql";
String usuario = "root";
String senha = "root";
Connection con = DriverManager.getConnection(url, usuario, senha);
System.out.println("URL: " + url);
System.out.println("Connection: " + con);
Continua…
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.82
HelloMysql.java 2/2
Statement stmt = con.createStatement(); //objeto Statement
ResultSet rs; //objeto ResultSet
rs = stmt.executeQuery("SELECT * FROM world.country");
System.out.println("Ola mundo!");
while(rs.next()){
String nomePais = rs.getString("Name");
System.out.print(nomePais + ", ");
}//end while
con.close();
} catch( Exception e ) {
e.printStackTrace();
}//end catch
}//end main
}//end class HelloMysql PRONTO!
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.83
java HelloMysql
C:tutorial>javac HelloMysql.java
C:tutorial>java HelloMysql
Tentando conectar ao MySQL...
URL: jdbc:mysql://localhost:3306/mysql
Connection: com.mysql.jdbc.JDBC4Connection@ed07f45
Ola mundo!
Aruba, Afghanistan, Angola, Anguilla, Albania, Andorra, Netherlands Antilles, Un
ited Arab Emirates, Argentina, Armenia, American Samoa, Antarctica, French South
ern territories, Antigua and Barbuda, Australia, Austria, Azerbaijan, Burundi, B
elgium, Benin, Burkina Faso, Bangladesh, Bulgaria, Bahrain, Bahamas, Bosnia and
Herzegovina, Belarus, Belize, Bermuda, Bolivia, Brazil, Barbados, Brunei, Bhutan
…
ietnam, Vanuatu, Wallis and Futuna, Samoa, Yemen, Yugoslavia, South Africa, Zamb
ia, Zimbabwe,
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.84
MySQL for Visual Studio
 Design Time Support
 Query Designer
 Stored Routine Debugging
 Entity Framework
Integração total com a plataforma .Net
mysql.com/why-mysql/windows/visualstudio
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.86
MySQL Workbench 6
Para Windows, Linux, Solaris, Apple Mac OS…
 MySQL Database IDE
 Milhões de downloads
 Desenvolvedores e DBA’s
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.87
MySQL Workbench 6
Configurações
do Servidor
Árvore de objetos e
esquemas no Servidor
Área de Queries
Barras laterais com
informações do
contexto atual e
biblioteca de
Snipets
Respostas e
Histórico
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.88
MySQL Workbench 6.1
Dashboards: Performance & Status
Analyze hotspots, costly SQL statements, wait
times, locks, InnoDB stats, and more
Network, Server, InnoDB
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.89
MySQL Enterprise Monitor 3.0
 Análise de gargalos e queries
 Encontre e corrija problemas
visualmente
 Monitoramento em tempo real da
performance e disponibilidade
 Monitore discos e faça capacity
planning
 Arquitetura que não exige agentes
 Agente remoto monitora SO
 Comece a monitorar em 10 minutos
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.90
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.91
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.92
Explain Query
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.93
QRTi
Query Response Time Index
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.94
Capacity Planning
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.95
 Revisão de queries lentas
 Revisão e auxílio na modelagem
 Auxílio na definição de estratégias de particionamento
 Performance tuning
 Revisão de código (Triggers, Procedures, Functions, UDFs)
 Entre outros...
Suporte consultivo MySQL
Engenheiros MySQL como parte do seu time
Saiba mais: mysql.com/support/consultative.html
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.96
MySQL for
Beginners Ed 3
MySQL for Database
Administrators Ed 3.1
MySQL Performance
Tuning
MySQL High Availability
MySQL Cluster
MySQL DBA
Introduction to
MySQL 5.5
MySQL Developers
Techniques
MySQL for
Beginners Ed 3
MySQL and PHP
Developing Dynamic
Web Applications
MySQL for Developers
Ed 2
MySQL Advanced Stored
Procedures
MySQLDeveloper
education.oracle.com/mysql
Opcional
Necessário
Treinamentos e certificações
Oracle Certified
Professional, MySQL 5.6
DBA
Oracle Certified Expert,
MySQL Cluster DBA
Certificações
Oracle Certified
Professional, MySQL 5.6
Developer
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.97
Ciclo evolutivo do produto/aplicação
Identificação do Mercado e
Modelo de Negócios1
Análise e Especificação
de Requisitos2
Arquitetura e
Prototipagem3
Implementação e Testes4
Empacotamento e
Distribuição5
Manutenção
Correções e atualizações/migrações6
n iterações
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.98
Como distribuir meu produto com MySQL?
 Cloud: SaaS
 On-Premise: Embarcado
 Como embarcar?
Modelos e métodos de distribuição
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.99
Como embarcar
Opções de distribuição embedded e deeply embedded
client-server
(embedded)
• Inclua os binários com sua
aplicação e execute via linha de
comando
-- ou também --
• No Windows
• use silent installation, MySQL
installer
• Demais SO’s
• instale e configure usando TARs
ou RPMs
libmysqld
(deeply embedded)
• 5 passos:
• desenvolva aplicações em C com
chamadas para iniciar ou parar o
'servidor'
• compile normalmente
• link com libmysqld
• configure um arquivo my.cnf ou
my.ini
• distribua a aplicação normalmente
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.100
Como embarcar
 roda o MySQL sem necessidade de instalação
 pode-se colocar em um subdiretório da aplicação
 Parâmetros importantes:
--port= porta em que o MySQL escuta conexões
--defaults-file= localização do arquivo de configurações my.ini ou my.cnf
--datadir= localização dos arquivos de dados
--skip-networking restringe conexões TCP/IP liberando apenas socket file (Linux) ou named-pipes (Windows)
--socket= localização do Unix socket file para conexões locais
Client-server via linha de comando
mysqld.exe --port=3306 --defaults-file="C:mysqlmy.ini" --datadir="C:mysqldata”
Exemplo de execução:
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.101
Saiba mais...
 Silent Installation (Windows)
http://dev.mysql.com/doc/refman/5.6/en/mysql-installer.html
 Usando TAR (Linux)
http://dev.mysql.com/doc/refman/5.6/en/binary-installation.html
http://dev.mysql.com/doc/refman/5.6/en/automatic-start.html
 Usando RPM (Linux)
http://dev.mysql.com/doc/refman/5.6/en/linux-installation-rpm.html
 Exemplo de aplicação com libmysqld
http://dev.mysql.com/doc/refman/5.6/en/libmysqld-example.html
Como embarcar
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.102
Ciclo evolutivo do produto/aplicação
Identificação do Mercado e
Modelo de Negócios1
Análise e Especificação
de Requisitos2
Arquitetura e
Prototipagem3
Implementação e Testes4
Empacotamento e
Distribuição5
Manutenção
Correções e atualizações/migrações6
n iterações
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.104
 Acesso direto 24 x 7 x 365
 Número ilimitado de incidentes
 Base de conhecimento
 Suporte Consultivo
 Tradução para o Português
 Hot Fixes para Bugs
 Releases de manutenção do MySQL
 Maior time de especialistas MySQL no mundo
 Suportados pelos próprios Desenvolvedores do MySQL
"The rep that assisted me was simply
outstanding. He immediately
recognized the cause of my problem
and provided the resolution.”
mysql.com/support/quotes
Oracle Premier Support para MySQL
Engenheiros MySQL como parte do seu time
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.105
MySQL Enterprise Backup
 Backup online para InnoDB
 Backups completos, incrementais, parciais (automatizados via script)
 Compressão, Criptografia
 Opções de Recovery: Point in Time, Completo, Parcial
 Metadados de status, progresso e histórico
 Tamanho ilimitado do BD
 Multi-Plataforma: Windows, Linux, Unix
 Compatível SBT, Oracle Secure Backup
 Suporte Cloud (Amazon S3)
MEB
Backup
Files
MySQL
Database
Files
mysqlbackup
Backup e Recovery mais rápidos e online.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.106
MySQL Enterprise Backup
Menor tempo em backups e restores, menos downtime
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.107
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.108
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.109
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.110
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.111
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.112
Eventos
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.113
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.114
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.115
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.116
Advisors
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.117
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.118
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.119
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.120
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.121
Atualizações / Upgrades
 Binária
– substitua os binários, suba o servidor e rode mysql_upgrade
– obedeça a ordem 5.0 > 5.1 > 5.5 > 5.6
 mysqldump
– faça o dump dos databases e restaure numa nova instalação
 Workbench
– Migration Wizard / Schema Transfer Wizard
 Replicação
– de um Master numa versão mais antiga para um Slave mais novo
Possíveis estratégias
dev.mysql.com/doc/refman/5.6/en/upgrading.html
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.122
MySQL Workbench 6
 Fácil Migração
– Microsoft SQL Server
– PostgreSQL
– Sybase ASE
– Sybase SQL Anywhere
– SQLite, MS Access
 Next, Next, Finish
 Migra estrutura e dados
 Não migra procedures
Migration Wizard
dev.mysql.com/doc/workbench/en/wb-migration-overview-steps.html
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.123
Migração para MySQL
Onde faz sentido migrar, migre. Do contrário, não migre.
Aplicação… Método de migração Complexidade
Usa Standard SQL
Ferramenta MySQL
Workbench ou CSV dumps
Baixa: migre, teste e pronto!
Usa intensamente Stored
Procedures, Triggers
Ferramentas de terceiros
(SQLWays)
Média: dependendo da
complexidade das procedures,
pode ser fácil
Usa funcionalidade
especializada do BD e não
nativa do MySQL
Ferramentas de terceiros ou
re-arquitetura
Alta: pode ser fácil, mas
também pode ser muito difícil
Empacotada ou desenvolvida
e mantida por fornecedor que
não certifica para MySQL
Acordo com o fornecedor
Não recomendado migrar
sem ajuda do fornecedor,
raras exceções
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.124
Oracle para MySQL
 Exporting Data from Oracle
– Oracle SQL Developer
– SQL*Plus
– Using PL/SQL: UTL FILE package
 Importing Data into MySQL
– LOAD ... INFILE
– CSV storage engine
 Migration Tools
– Golden Gate, Pentaho, Convert-in, SQLWays
Possíveis estratégias
support.oracle.com/epmos/faces/DocumentDisplay?id=1477151.1
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.125
Ciclo evolutivo do produto/aplicação
Identificação do Mercado e
Modelo de Negócios1
Análise e Especificação
de Requisitos2
Arquitetura e
Prototipagem3
Implementação e Testes4
Empacotamento e
Distribuição5
Manutenção
Correções e atualizações/migrações6
n iterações
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.126
MySQL Enterprise Edition
Suporte + Backup + Monitor + Workbench + Plug-ins
Plug-ins
Suporte
Backup
Monitor &
Workbench
Escalabilidade
Segurança
Auditoria
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.127
Sumário
 O MySQL é o banco de dados ideal para muitos casos de uso,
atendendo muito bem requisitos de: segurança, performance,
escalabilidade, confiabilidade, robustez, disponibilidade,
portabilidade, operacionalização (DevOps), etc.
 Baixe, instale, crie protótipos ou migre em poucos minutos!
 A Oracle pode ajudá-lo a adotar e distribuir o MySQL com menor
risco e com vantagens econômicas para seu negócio
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.128
@MySQLBR
meetup.com/MySQL-BR
facebook.com/MySQLBR
Obrigado!
MySQL para Desenvolvedores de Produto
Perguntas?

Mais conteúdo relacionado

Mais procurados

MySQL Alta Performance & Alta Disponibilidade
MySQL Alta Performance & Alta DisponibilidadeMySQL Alta Performance & Alta Disponibilidade
MySQL Alta Performance & Alta Disponibilidade
MySQL Brasil
 
MySQL Enterprise Monitor para Desenvolvedores
MySQL Enterprise Monitor para DesenvolvedoresMySQL Enterprise Monitor para Desenvolvedores
MySQL Enterprise Monitor para Desenvolvedores
MySQL Brasil
 
MySQL - o banco de dados open source mais popular do mundo
MySQL - o banco de dados open source mais popular do mundoMySQL - o banco de dados open source mais popular do mundo
MySQL - o banco de dados open source mais popular do mundo
MySQL Brasil
 
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
MySQL Brasil
 
My sql apresentação
My sql apresentaçãoMy sql apresentação
My sql apresentação
Barbara Damacena
 
MySQL e Oracle - GUOB Tech Day 2012
MySQL e Oracle - GUOB Tech Day 2012MySQL e Oracle - GUOB Tech Day 2012
MySQL e Oracle - GUOB Tech Day 2012
MySQL Brasil
 
MySQL e Oracle para Desenvolvedores
MySQL e Oracle para DesenvolvedoresMySQL e Oracle para Desenvolvedores
MySQL e Oracle para Desenvolvedores
Airton Lastori
 
MySQL e Oracle para DBAs
MySQL e Oracle para DBAsMySQL e Oracle para DBAs
MySQL e Oracle para DBAs
Airton Lastori
 
Alta-disponibilidade com MySQL
Alta-disponibilidade com MySQLAlta-disponibilidade com MySQL
Alta-disponibilidade com MySQL
MySQL Brasil
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geral
MySQL Brasil
 
Visão histórica do SQL Server
Visão histórica do SQL ServerVisão histórica do SQL Server
Visão histórica do SQL Server
Marcelo Ramos
 
Arquitetando sua aplicação de nova geração com MySQL 5.7
Arquitetando sua aplicação de nova geração com MySQL 5.7Arquitetando sua aplicação de nova geração com MySQL 5.7
Arquitetando sua aplicação de nova geração com MySQL 5.7
Mathias Brem
 
Realmente devo pensar na versão Enterprise do MySQL?
Realmente devo pensar na versão Enterprise do MySQL?Realmente devo pensar na versão Enterprise do MySQL?
Realmente devo pensar na versão Enterprise do MySQL?
Juliano de Oliveira Falcao
 
Comparativo microsoft vm_ware
Comparativo microsoft vm_wareComparativo microsoft vm_ware
Comparativo microsoft vm_ware
Cimcorp
 
Sql server
Sql serverSql server
Sql server
Hudson Brendon
 
Apresentação SQL Server 29/04
Apresentação SQL Server 29/04Apresentação SQL Server 29/04
Apresentação SQL Server 29/04
Allen Informática
 
Sql Server
Sql ServerSql Server
Sql Server
Sabrina Mariana
 
IDC Summit 2015 - DBaaS
IDC Summit 2015 - DBaaSIDC Summit 2015 - DBaaS
IDC Summit 2015 - DBaaS
Rodrigo Almeida
 
My sql enterprise vs community
My sql enterprise vs communityMy sql enterprise vs community
My sql enterprise vs community
MySQL Brasil
 

Mais procurados (19)

MySQL Alta Performance & Alta Disponibilidade
MySQL Alta Performance & Alta DisponibilidadeMySQL Alta Performance & Alta Disponibilidade
MySQL Alta Performance & Alta Disponibilidade
 
MySQL Enterprise Monitor para Desenvolvedores
MySQL Enterprise Monitor para DesenvolvedoresMySQL Enterprise Monitor para Desenvolvedores
MySQL Enterprise Monitor para Desenvolvedores
 
MySQL - o banco de dados open source mais popular do mundo
MySQL - o banco de dados open source mais popular do mundoMySQL - o banco de dados open source mais popular do mundo
MySQL - o banco de dados open source mais popular do mundo
 
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
Alta-disponibilidade e alta performance com o MySQL Cluster 7.3
 
My sql apresentação
My sql apresentaçãoMy sql apresentação
My sql apresentação
 
MySQL e Oracle - GUOB Tech Day 2012
MySQL e Oracle - GUOB Tech Day 2012MySQL e Oracle - GUOB Tech Day 2012
MySQL e Oracle - GUOB Tech Day 2012
 
MySQL e Oracle para Desenvolvedores
MySQL e Oracle para DesenvolvedoresMySQL e Oracle para Desenvolvedores
MySQL e Oracle para Desenvolvedores
 
MySQL e Oracle para DBAs
MySQL e Oracle para DBAsMySQL e Oracle para DBAs
MySQL e Oracle para DBAs
 
Alta-disponibilidade com MySQL
Alta-disponibilidade com MySQLAlta-disponibilidade com MySQL
Alta-disponibilidade com MySQL
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geral
 
Visão histórica do SQL Server
Visão histórica do SQL ServerVisão histórica do SQL Server
Visão histórica do SQL Server
 
Arquitetando sua aplicação de nova geração com MySQL 5.7
Arquitetando sua aplicação de nova geração com MySQL 5.7Arquitetando sua aplicação de nova geração com MySQL 5.7
Arquitetando sua aplicação de nova geração com MySQL 5.7
 
Realmente devo pensar na versão Enterprise do MySQL?
Realmente devo pensar na versão Enterprise do MySQL?Realmente devo pensar na versão Enterprise do MySQL?
Realmente devo pensar na versão Enterprise do MySQL?
 
Comparativo microsoft vm_ware
Comparativo microsoft vm_wareComparativo microsoft vm_ware
Comparativo microsoft vm_ware
 
Sql server
Sql serverSql server
Sql server
 
Apresentação SQL Server 29/04
Apresentação SQL Server 29/04Apresentação SQL Server 29/04
Apresentação SQL Server 29/04
 
Sql Server
Sql ServerSql Server
Sql Server
 
IDC Summit 2015 - DBaaS
IDC Summit 2015 - DBaaSIDC Summit 2015 - DBaaS
IDC Summit 2015 - DBaaS
 
My sql enterprise vs community
My sql enterprise vs communityMy sql enterprise vs community
My sql enterprise vs community
 

Destaque

Tutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL WorkbenchTutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL Workbench
Daniel Brandão
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
Rangel Javier
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
Gleydson Sousa
 
MySQL - the database
MySQL - the databaseMySQL - the database
MySQL - the database
Miguel Sousa Filipe
 
Introdução ao MySQL
Introdução ao MySQLIntrodução ao MySQL
Introdução ao MySQL
Anderson Sanches
 
Criando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL WorkbenchCriando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL Workbench
Centro Paula Souza
 
Manual de phpmyadmin
Manual de phpmyadminManual de phpmyadmin
Manual de phpmyadmin
Silv Padilla Palomo
 
Aula 08 - Introdução ao banco de dados MySQL - Programação Web
Aula 08 - Introdução ao banco de dados MySQL - Programação WebAula 08 - Introdução ao banco de dados MySQL - Programação Web
Aula 08 - Introdução ao banco de dados MySQL - Programação Web
Dalton Martins
 
12 SQL - Junções / Join
12 SQL - Junções / Join12 SQL - Junções / Join
12 SQL - Junções / Join
Centro Paula Souza
 
Apostila sql
Apostila sqlApostila sql
Apostila sql
snetobr
 
Manual SQL
Manual SQLManual SQL
Manual SQL
valterccouto
 
MySQL - Instalação e Alguns comandos de Banco de Dados
MySQL - Instalação e Alguns comandos de Banco de DadosMySQL - Instalação e Alguns comandos de Banco de Dados
MySQL - Instalação e Alguns comandos de Banco de Dados
Clayton de Almeida Souza
 
Progweb Aula8
Progweb Aula8Progweb Aula8
Progweb Aula8
softeam
 
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
Rangel Javier
 
O comando SELECT (ordenação)
O comando SELECT (ordenação)O comando SELECT (ordenação)
O comando SELECT (ordenação)
Graciano Torrão
 
O comando SELECT (JOIN)
O comando SELECT (JOIN)O comando SELECT (JOIN)
O comando SELECT (JOIN)
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 PHP
Leonardo Soares
 
Scrum para desenvolvedores
Scrum para desenvolvedoresScrum para desenvolvedores
Scrum para desenvolvedores
Giovanni Bassi
 
The Power of MySQL Explain
The Power of MySQL ExplainThe Power of MySQL Explain
The Power of MySQL Explain
MYXPLAIN
 
PHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosPHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de Dados
Daniel Brandão
 

Destaque (20)

Tutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL WorkbenchTutorial - Criando Banco com MySQL Workbench
Tutorial - Criando Banco com MySQL Workbench
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
MySQL - the database
MySQL - the databaseMySQL - the database
MySQL - the database
 
Introdução ao MySQL
Introdução ao MySQLIntrodução ao MySQL
Introdução ao MySQL
 
Criando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL WorkbenchCriando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL Workbench
 
Manual de phpmyadmin
Manual de phpmyadminManual de phpmyadmin
Manual de phpmyadmin
 
Aula 08 - Introdução ao banco de dados MySQL - Programação Web
Aula 08 - Introdução ao banco de dados MySQL - Programação WebAula 08 - Introdução ao banco de dados MySQL - Programação Web
Aula 08 - Introdução ao banco de dados MySQL - Programação Web
 
12 SQL - Junções / Join
12 SQL - Junções / Join12 SQL - Junções / Join
12 SQL - Junções / Join
 
Apostila sql
Apostila sqlApostila sql
Apostila sql
 
Manual SQL
Manual SQLManual SQL
Manual SQL
 
MySQL - Instalação e Alguns comandos de Banco de Dados
MySQL - Instalação e Alguns comandos de Banco de DadosMySQL - Instalação e Alguns comandos de Banco de Dados
MySQL - Instalação e Alguns comandos de Banco de Dados
 
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 (ordenação)
O comando SELECT (ordenação)O comando SELECT (ordenação)
O comando SELECT (ordenação)
 
O comando SELECT (JOIN)
O comando SELECT (JOIN)O comando SELECT (JOIN)
O comando SELECT (JOIN)
 
Banco de dadados MySQL com PHP
Banco de dadados MySQL com PHPBanco de dadados MySQL com PHP
Banco de dadados MySQL com PHP
 
Scrum para desenvolvedores
Scrum para desenvolvedoresScrum para desenvolvedores
Scrum para desenvolvedores
 
The Power of MySQL Explain
The Power of MySQL ExplainThe Power of MySQL Explain
The Power of MySQL Explain
 
PHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosPHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de Dados
 

Semelhante a MySQL para Desenvolvedores de Produto

Apresentação MySQL Enterprise
Apresentação MySQL EnterpriseApresentação MySQL Enterprise
Apresentação MySQL Enterprise
Juliano de Oliveira Falcao
 
Serviços Escaláveis e de Alta Performance com MySQL e Java
Serviços Escaláveis e de Alta Performance com MySQL e JavaServiços Escaláveis e de Alta Performance com MySQL e Java
Serviços Escaláveis e de Alta Performance com MySQL e Java
MySQL Brasil
 
Uso estratégico do MySQL para empresas de TI: Novidades e Futuro
Uso estratégico do MySQL para empresas de TI: Novidades e FuturoUso estratégico do MySQL para empresas de TI: Novidades e Futuro
Uso estratégico do MySQL para empresas de TI: Novidades e Futuro
assertimarilia
 
Estratégia Oracle para MySQL
Estratégia Oracle para MySQLEstratégia Oracle para MySQL
Estratégia Oracle para MySQL
MySQL Brasil
 
Desenvolvendo serviços escaláveis e de alta performance com MySQL
Desenvolvendo serviços escaláveis e de alta performance com MySQLDesenvolvendo serviços escaláveis e de alta performance com MySQL
Desenvolvendo serviços escaláveis e de alta performance com MySQL
MySQL Brasil
 
MySQL e Big Data
MySQL e Big DataMySQL e Big Data
MySQL e Big Data
MySQL Brasil
 
Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...
Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...
Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...
MySQL Brasil
 
Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15
MySQL Brasil
 
Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014
MySQL Brasil
 
Novidades do Universo MySQL Agosto 2014
Novidades do Universo MySQL Agosto 2014Novidades do Universo MySQL Agosto 2014
Novidades do Universo MySQL Agosto 2014
MySQL Brasil
 
Novidades do MySQL para desenvolvedores ago15
Novidades do MySQL para desenvolvedores ago15Novidades do MySQL para desenvolvedores ago15
Novidades do MySQL para desenvolvedores ago15
MySQL Brasil
 
MySQL e Oracle para Desenvolvedores
MySQL e Oracle para DesenvolvedoresMySQL e Oracle para Desenvolvedores
MySQL e Oracle para Desenvolvedores
MySQL Brasil
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geral
MySQL Brasil
 
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
MySQL Brasil
 
Replicação e alta disponibilidade by wagner bianchi -
Replicação e alta disponibilidade by wagner bianchi -Replicação e alta disponibilidade by wagner bianchi -
Replicação e alta disponibilidade by wagner bianchi -
MySQL Brasil
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geral
MySQL Brasil
 
MySQL e Oracle para DBAs
MySQL e Oracle para DBAsMySQL e Oracle para DBAs
MySQL e Oracle para DBAs
MySQL Brasil
 
Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud Platform
André Paulovich
 
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
Fabrício Lopes Sanchez
 
Cenário das Plataformas de Dados 2017/2018
Cenário das Plataformas de Dados 2017/2018Cenário das Plataformas de Dados 2017/2018
Cenário das Plataformas de Dados 2017/2018
Raul Oliveira
 

Semelhante a MySQL para Desenvolvedores de Produto (20)

Apresentação MySQL Enterprise
Apresentação MySQL EnterpriseApresentação MySQL Enterprise
Apresentação MySQL Enterprise
 
Serviços Escaláveis e de Alta Performance com MySQL e Java
Serviços Escaláveis e de Alta Performance com MySQL e JavaServiços Escaláveis e de Alta Performance com MySQL e Java
Serviços Escaláveis e de Alta Performance com MySQL e Java
 
Uso estratégico do MySQL para empresas de TI: Novidades e Futuro
Uso estratégico do MySQL para empresas de TI: Novidades e FuturoUso estratégico do MySQL para empresas de TI: Novidades e Futuro
Uso estratégico do MySQL para empresas de TI: Novidades e Futuro
 
Estratégia Oracle para MySQL
Estratégia Oracle para MySQLEstratégia Oracle para MySQL
Estratégia Oracle para MySQL
 
Desenvolvendo serviços escaláveis e de alta performance com MySQL
Desenvolvendo serviços escaláveis e de alta performance com MySQLDesenvolvendo serviços escaláveis e de alta performance com MySQL
Desenvolvendo serviços escaláveis e de alta performance com MySQL
 
MySQL e Big Data
MySQL e Big DataMySQL e Big Data
MySQL e Big Data
 
Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...
Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...
Aumentando a segurança, disponibilidade e desempenho com MySQL Enterprise Edi...
 
Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15Novidades do Universo MySQL julho-15
Novidades do Universo MySQL julho-15
 
Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014Novidades do Universo MySQL Maio 2014
Novidades do Universo MySQL Maio 2014
 
Novidades do Universo MySQL Agosto 2014
Novidades do Universo MySQL Agosto 2014Novidades do Universo MySQL Agosto 2014
Novidades do Universo MySQL Agosto 2014
 
Novidades do MySQL para desenvolvedores ago15
Novidades do MySQL para desenvolvedores ago15Novidades do MySQL para desenvolvedores ago15
Novidades do MySQL para desenvolvedores ago15
 
MySQL e Oracle para Desenvolvedores
MySQL e Oracle para DesenvolvedoresMySQL e Oracle para Desenvolvedores
MySQL e Oracle para Desenvolvedores
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geral
 
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
 
Replicação e alta disponibilidade by wagner bianchi -
Replicação e alta disponibilidade by wagner bianchi -Replicação e alta disponibilidade by wagner bianchi -
Replicação e alta disponibilidade by wagner bianchi -
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geral
 
MySQL e Oracle para DBAs
MySQL e Oracle para DBAsMySQL e Oracle para DBAs
MySQL e Oracle para DBAs
 
Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud Platform
 
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
 
Cenário das Plataformas de Dados 2017/2018
Cenário das Plataformas de Dados 2017/2018Cenário das Plataformas de Dados 2017/2018
Cenário das Plataformas de Dados 2017/2018
 

Mais de MySQL Brasil

MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017
MySQL Brasil
 
MySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e UberMySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e Uber
MySQL Brasil
 
MySQL 8.0.1 DMR
MySQL 8.0.1 DMRMySQL 8.0.1 DMR
MySQL 8.0.1 DMR
MySQL Brasil
 
Alta disponibilidade com MySQL Enterprise
Alta disponibilidade com MySQL EnterpriseAlta disponibilidade com MySQL Enterprise
Alta disponibilidade com MySQL Enterprise
MySQL Brasil
 
MySQL Roadmap NoSQL HA Fev17
MySQL Roadmap NoSQL HA Fev17MySQL Roadmap NoSQL HA Fev17
MySQL Roadmap NoSQL HA Fev17
MySQL Brasil
 
Segurança no MySQL
Segurança no MySQLSegurança no MySQL
Segurança no MySQL
MySQL Brasil
 
5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL
MySQL Brasil
 
Alta disponibilidade no MySQL 5.7 GUOB 2016
Alta disponibilidade no MySQL 5.7 GUOB 2016Alta disponibilidade no MySQL 5.7 GUOB 2016
Alta disponibilidade no MySQL 5.7 GUOB 2016
MySQL Brasil
 
MySQL 5.7 como Document Store
MySQL 5.7 como Document StoreMySQL 5.7 como Document Store
MySQL 5.7 como Document Store
MySQL Brasil
 
Enabling digital transformation with MySQL
Enabling digital transformation with MySQLEnabling digital transformation with MySQL
Enabling digital transformation with MySQL
MySQL Brasil
 
Alta Disponibilidade no MySQL 5.7 para aplicações em PHP
Alta Disponibilidade no MySQL 5.7 para aplicações em PHPAlta Disponibilidade no MySQL 5.7 para aplicações em PHP
Alta Disponibilidade no MySQL 5.7 para aplicações em PHP
MySQL Brasil
 
Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7
MySQL Brasil
 
NoSQL no MySQL 5.7
NoSQL no MySQL 5.7NoSQL no MySQL 5.7
NoSQL no MySQL 5.7
MySQL Brasil
 
OpenStack & MySQL
OpenStack & MySQLOpenStack & MySQL
OpenStack & MySQL
MySQL Brasil
 
10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups
MySQL Brasil
 
Estratégias de Segurança e Gerenciamento para MySQL
Estratégias de Segurança e Gerenciamento para MySQLEstratégias de Segurança e Gerenciamento para MySQL
Estratégias de Segurança e Gerenciamento para MySQL
MySQL Brasil
 
MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15
MySQL Brasil
 
MySQL Enterprise Edition Portfolio
MySQL Enterprise Edition PortfolioMySQL Enterprise Edition Portfolio
MySQL Enterprise Edition Portfolio
MySQL Brasil
 
Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...
Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...
Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...
MySQL Brasil
 

Mais de MySQL Brasil (19)

MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017MySQL como Document Store PHP Conference 2017
MySQL como Document Store PHP Conference 2017
 
MySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e UberMySQL no Paypal Tesla e Uber
MySQL no Paypal Tesla e Uber
 
MySQL 8.0.1 DMR
MySQL 8.0.1 DMRMySQL 8.0.1 DMR
MySQL 8.0.1 DMR
 
Alta disponibilidade com MySQL Enterprise
Alta disponibilidade com MySQL EnterpriseAlta disponibilidade com MySQL Enterprise
Alta disponibilidade com MySQL Enterprise
 
MySQL Roadmap NoSQL HA Fev17
MySQL Roadmap NoSQL HA Fev17MySQL Roadmap NoSQL HA Fev17
MySQL Roadmap NoSQL HA Fev17
 
Segurança no MySQL
Segurança no MySQLSegurança no MySQL
Segurança no MySQL
 
5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL5 razões estratégicas para usar MySQL
5 razões estratégicas para usar MySQL
 
Alta disponibilidade no MySQL 5.7 GUOB 2016
Alta disponibilidade no MySQL 5.7 GUOB 2016Alta disponibilidade no MySQL 5.7 GUOB 2016
Alta disponibilidade no MySQL 5.7 GUOB 2016
 
MySQL 5.7 como Document Store
MySQL 5.7 como Document StoreMySQL 5.7 como Document Store
MySQL 5.7 como Document Store
 
Enabling digital transformation with MySQL
Enabling digital transformation with MySQLEnabling digital transformation with MySQL
Enabling digital transformation with MySQL
 
Alta Disponibilidade no MySQL 5.7 para aplicações em PHP
Alta Disponibilidade no MySQL 5.7 para aplicações em PHPAlta Disponibilidade no MySQL 5.7 para aplicações em PHP
Alta Disponibilidade no MySQL 5.7 para aplicações em PHP
 
Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7Alta Disponibilidade no MySQL 5.7
Alta Disponibilidade no MySQL 5.7
 
NoSQL no MySQL 5.7
NoSQL no MySQL 5.7NoSQL no MySQL 5.7
NoSQL no MySQL 5.7
 
OpenStack & MySQL
OpenStack & MySQLOpenStack & MySQL
OpenStack & MySQL
 
10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups
 
Estratégias de Segurança e Gerenciamento para MySQL
Estratégias de Segurança e Gerenciamento para MySQLEstratégias de Segurança e Gerenciamento para MySQL
Estratégias de Segurança e Gerenciamento para MySQL
 
MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15
 
MySQL Enterprise Edition Portfolio
MySQL Enterprise Edition PortfolioMySQL Enterprise Edition Portfolio
MySQL Enterprise Edition Portfolio
 
Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...
Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...
Architecture and Design MySQL powered applications by Peter Zaitsev Meetup Sa...
 

Último

se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docxse38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
ronaldos10
 
Segurança da Informação - Onde estou e para onde eu vou.pptx
Segurança da Informação - Onde estou e para onde eu vou.pptxSegurança da Informação - Onde estou e para onde eu vou.pptx
Segurança da Informação - Onde estou e para onde eu vou.pptx
Divina Vitorino
 
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
Faga1939
 
ExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão 2024 - Desvendando um mundo em ebuliçãoExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão
 
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de   DevOps/CLoudFerramentas que irão te ajudar a entrar no mundo de   DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
Ismael Ash
 
Eletiva_O-mundo-conectado-Ensino-Médio.docx.pdf
Eletiva_O-mundo-conectado-Ensino-Médio.docx.pdfEletiva_O-mundo-conectado-Ensino-Médio.docx.pdf
Eletiva_O-mundo-conectado-Ensino-Médio.docx.pdf
barbosajucy47
 
Subindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWSSubindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWS
Ismael Ash
 

Último (7)

se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docxse38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
se38_layout_erro_xxxxxxxxxxxxxxxxxx.docx
 
Segurança da Informação - Onde estou e para onde eu vou.pptx
Segurança da Informação - Onde estou e para onde eu vou.pptxSegurança da Informação - Onde estou e para onde eu vou.pptx
Segurança da Informação - Onde estou e para onde eu vou.pptx
 
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
INTELIGÊNCIA ARTIFICIAL + COMPUTAÇÃO QUÂNTICA = MAIOR REVOLUÇÃO TECNOLÓGICA D...
 
ExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão 2024 - Desvendando um mundo em ebuliçãoExpoGestão 2024 - Desvendando um mundo em ebulição
ExpoGestão 2024 - Desvendando um mundo em ebulição
 
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de   DevOps/CLoudFerramentas que irão te ajudar a entrar no mundo de   DevOps/CLoud
Ferramentas que irão te ajudar a entrar no mundo de DevOps/CLoud
 
Eletiva_O-mundo-conectado-Ensino-Médio.docx.pdf
Eletiva_O-mundo-conectado-Ensino-Médio.docx.pdfEletiva_O-mundo-conectado-Ensino-Médio.docx.pdf
Eletiva_O-mundo-conectado-Ensino-Médio.docx.pdf
 
Subindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWSSubindo uma aplicação WordPress em docker na AWS
Subindo uma aplicação WordPress em docker na AWS
 

MySQL para Desenvolvedores de Produto

  • 1. MySQL para Desenvolvedores de Produto Julho 2014 Airton Lastori airton.lastori@oracle.com
  • 2. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.2 Objetivos  Entender como o MySQL pode ajudá-lo com seu produto  Conhecer as novidades do universo MySQL que podem ajudar na construção ou migração de um produto/aplicação
  • 3. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.3 Ciclo evolutivo do produto/aplicação Identificação do Mercado e Modelo de Negócios1 Análise e Especificação de Requisitos2 Arquitetura e Prototipagem3 Implementação e Testes4 Empacotamento e Distribuição5 Manutenção Correções e atualizações/migrações6 n iterações
  • 4. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.4 Ciclo evolutivo do produto/aplicação Identificação do Mercado e Modelo de Negócios1 Análise e Especificação de Requisitos2 Arquitetura e Prototipagem3 Implementação e Testes4 Empacotamento e Distribuição5 Manutenção Correções e atualizações/migrações6 n iterações
  • 5. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.5 Por que MySQL?  MySQL como parte integral do seu produto  Oracle como Parceira  Investimento Oracle no MySQL  Casos de sucesso  Devo migrar para MySQL? Visão de Negócios
  • 6. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.9 Oracle MySQL para ISV e OEM MySQL Community Edition – Distribuído ao cliente final empacotado com código aberto de seu produto – Uso Interno, SaaS, Cloud MySQL Enterprise Edition – Uso Interno, SaaS, Cloud MySQL Comercial (OEM) – Distribuído ao cliente final empacotado com código proprietário Sem suporte e ferramentas Enterprise Licença perpétua + 19% de suporte anual Suporte Oracle via Parceiro Subscrição Anual Suporte direto da Oracle
  • 7. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.10 Tomas Ulin  [video] youtube.com/watch?v=8stNlpJm_nA  [slides] mysql.com/why- mysql/presentations/raising-the- mysql-bar VP de Engenharia do MySQL na Oracle
  • 8. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.11 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.11 COMPONENTES da pilha MySQL: Aplicações Web da próxima geração On-Premises, na Nuvem, Aplicações Distribuídas
  • 9. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.12 Elevando o nível Novamente, um melhor MySQL para vocês
  • 10. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.13 s
  • 11. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.15 Compromisso Oracle com MySQL https://blogs.oracle.com/MySQL/entry/mysql_connect_keynotes_and_news
  • 12. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.16 Bem-vindo, WebScaleSQL!  Branch do MySQL 5.6, com patches para uso em Escala Web  Investimentos de gigantes da Web para melhorar o MySQL  Ótima notícia para a comunidade e novos desenvolvedores  Ainda mais fácil a cooperação entre Oracle e as gigantes da Web Facebook, Google, LinkedIn & Twitter!
  • 13. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.17 Alguns clientes MySQL
  • 14. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.18 Motivos para migração  otimizar custos e reduzir riscos – licenciamento, suporte  aumentar faturamento – expandir base, mudar modelo de negócios / distribuição  outras soluções já não atendem mais tecnicamente (ex. flat file)  portabilidade  facilidade de uso e flexibilidade  escalabilidade e alta-disponibilidade Quando custos+riscos da migração são compensados pelos ganhos?
  • 15. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.19 Ciclo evolutivo do produto/aplicação Identificação do Mercado e Modelo de Negócios1 Análise e Especificação de Requisitos2 Arquitetura e Prototipagem3 Implementação e Testes4 Empacotamento e Distribuição5 Manutenção Correções e atualizações/migrações6 n iterações
  • 16. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.20 Qual Banco de Dados devo usar?  Quais as principais características técnicas?  Quem, por que e onde está usando?  Onde posso usar no meu contexto?  Qual o futuro da tecnologia?  Continua em desenvolvimento? Escolher a tecnologia correta de acordo com requisitos
  • 17. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.21 Fonte: http://db-engines.com/en/ranking_trend (maio/14)
  • 18. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.22 Características técnicas do MySQL Lista mais abrangente no site, aqui abordaremos apenas algumas mysql.com/products/enterprise/techspec.html
  • 19. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.23 Onde o MySQL geralmente se encaixa • Novas aplicações e aplicações customizadas Ad-hoc • principalmente arquitetura Web (ex. LAMP stack) • arquiteturas inovadoras, NoSQL (versão 5.6 e Cluster 7.2) • Aplicações híbridas • expansão de sistemas legados • MySQL como front-end e Oracle DB como back-end • Online, SaaS e Mobile • E-commerce/OLTP e pagamentos digitais • Gerenciamento de Conteúdo (CMS) • Redes Sociais, mensagens e colaboração • Games Sociais e MMO • SMS, e-marketing • Datamarts e Relatórios Departamentais • Embarcadas, Infra Telecom, Infra TI
  • 20. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.24 Call Detail Records (CDR) para suportar Billing, gestão de dispositivos, troubleshooting de redes, provisionamento e telemetria. Transaction Detail Records que é uma variante do CDRs com foco em troubleshooting. Recomendações Online – Cross-promotion. Coleta várias informações sobre as preferências do cliente toda vez que ele é “tocado” pela operadora. Traditional E-Commerce – Carrinho de compra, etc. D2C (Demand-to-Close) – Essencialmente um workflow que rastreia um “lead” no ciclo de vida até que ele vire um negócio (cliente). Call Center Queueing – Normalmente uma aplicação em cima do software do call center da empresa para gerir o tempo de espera dos seus clientes (McDonalds, Apple, etc) Customer Care Intranet - O caso da Verizon Outros usos em Telco
  • 21. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.25 Desafio Fornecer uma plataforma para os funcionários onde eles poderiam trabalhar em redes sociais, visualizar e hostear microsites, live streaming de vídeos, blog e divulgar as últimas notícias. TI decidiu usar o LAMP stack para suportar seu portal 24x7 de missão crítica (Vzweb, Vzwiki e Vztube), com o Drupal como front-end e MySQL no Linux como o backend, e alguns outros sites internos também em MySQL. Acessível aos 78.000 funcionários SLA 99,985% https://blogs.oracle.com/MySQL/entry/verizon_wireless_supports_its_mission Solução MySQL 5.5 in 2011 InnoDB store engine MySQL Enteprise Thread Pooling Resultado "MySQL é um componente chave em nosso portal, disse Shivinder Singh, DBA sênior da Verizon Wireless. “Alcançamos uma melhoria de desempenho de 1400% ao passar do store engine de MyISAM para InnoDB, atualizando para a última versão GA MySQL 5.5, e usando o MySQL Thread Pool para suportar um alto número de conexões simultâneas. MySQL tornou-se parte de nossa infra-estrutura de TI"
  • 22. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.26 Desafio Como em qualquer sistema de processamento de pagamentos financeiros, a construção de um sistema altamente confiável com disponibilidade 24x7 é a primeira prioridade. A Paggo não pode dar ao luxo de perda de dados. Perda de dados resulta em perda de negócios. A Paggo teve de construir um sistema que poderia crescer e performar conforme novos comerciantes e compradores cresciam, aumentando as transações. Em cima disso, Paggo é uma startup com um orçamento limitado, então tivemos que começar pequeno, com a capacidade de escalar a infra-estrutura incrementalmente, sem custos iniciais enormes. 40.000 comerciantes, 1.2 milhões de assinantes e 750.000 transações financeiras/mês 99,999% uptime Solução MySQL Cluster Resultado "Paggo não teria sido possível sem o MySQL Cluster. Nenhum outro produto poderia nos dar a capacidade de começar pequeno, escalar rapidamente e fornecer para o nosso sistema de pagamento financeiro 24x7 disponibilidade." Cícero Torteli Fundador, Paggo http://www.mysql.com/why-mysql/case-studies/paggo-mysql-cluster-java-financial-transactions-over-telecom/
  • 23. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.27 MySQL Enterprise Monitor 2.2 MySQL Cluster 7.1 MySQL Cluster Manager 1.0 MySQL Workbench 5.2 MySQL Database 5.5 MySQL Enterprise Backup 3.5 MySQL Enterprise Monitor 2.3 MySQL Cluster Manager 1.1 MySQL Enterprise Backup 3.7 All GA! Oracle VM Template for MySQL Oracle Products Certifications MySQL Windows Installer MySQL Enterprise Security MySQL Enterprise Scalability MySQL Cluster 7.2 MySQL Cluster Manager 1.3 MySQL Utilities 1.0.6 MySQL Workbench 6.0 All GA! MySQL Enterprise Backup 3.10 MySQL Enterprise Audit MySQL Windows Tools MySQL Database 5.6 MySQL Cluster 7.3 MySQL Workbench 6.1 MySQL Fabric 1.4 RC MySQL Database 5.7 DMR *Development Milestone Release All GA! Available Now! Breve histórico: 2010 - 2014
  • 24. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.28 5.7 DMR 1 Abril 2013 DMR 2 Set 2013 DMR 3 Dez 2013 DMR 4 Novas funcionalidades labs.mysql.com Disponível Agora! ... 5.6 GA Fev 2013 Anunciado o MySQL 5.7 DMR 4
  • 25. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.31 MySQL 5.7: DMR 4  InnoDB: melhor throughput transacional, disponibilidade, IO  Replication: melhor escalabilidade e disponibilidade  Utilities: facilidades para automação e DevOps  Performance Schema: melhores métricas e diagnósticos  Optimizer: melhores tempos nas queries, EXPLAINs, buffering e particionamento  Connections: taxas mais altas, sessões mais eficientes O MySQL 5.7 é o MySQL 5.6 + melhorias! Saiba mais: slideshare.net/MySQLBR/novidades-do-universo-mysql-maioi-2014
  • 26. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.32 Ciclo evolutivo do produto/aplicação Identificação do Mercado e Modelo de Negócios1 Análise e Especificação de Requisitos2 Arquitetura e Prototipagem3 Implementação e Testes4 Empacotamento e Distribuição5 Manutenção Correções e atualizações/migrações6 n iterações
  • 27. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.33 MySQL é adequado para o meu produto?  Quais conceitos fundamentais para uso correto do MySQL?  Quais plataformas e linguagens posso utilizar?  Quais os limites da tecnologia?  Quais recursos de alta-disponibilidade (HA) e escalabilidade?  Quais recursos de segurança? Dúvidas técnicas, requisitos não funcionais
  • 28. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.34 Aplicação + Connector JDBC, ODBC, .Net, PHP, Python, Perl, Ruby, Native C API… MySQL Database mysqld Cliente-Servidor Gerenciamento mysql / monitor / backup
  • 29. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.35 Aplicação + MySQL Database libmysqld libmysqld
  • 30. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.36 Client-server vs libmysqld client-server (embedded, SaaS, Web, etc.) • Comunica com a aplicação usando MySQL Connectors ou APIs • Executado como services/daemons ou via linha de comando • Deve ser incluído como parte da instalação da aplicação • A instalação e manutenção pode ser invisível ao usuário final libmysqld (deeply embedded) • Comunicação restrita a chamadas diretas em C • Linkado diretamente na aplicação • Não requer instalação (services/daemons) • Uso em aplicações com banco de dados auto-contido • Algumas limitações: mais footprint de memória, sem replicação, UDFs, core dumps, traces, etc.
  • 31. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.37 Plataformas suportadas  Hardware – 32 e 64 bit x86 – SPARC  Sistemas Operacionais – Windows – Linux – MacOS – FreeBSD – Solaris Maior portabilidade, mais liberdade de escolha mysql.com/support/supportedplatforms/database.html
  • 32. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.38 Amplo suporte a várias linguagens Várias opções de conectores e APIs Oracle • Connector/ODBC • Connector/Net (ADO.NET) • Connector/Python • Connector/J (JDBC) • Connector/C (C API) • Connector/C++ (C++ API) • Memcached API • MySQL for Excel Comunidade • PHP • Perl • Ruby • TCL • Eiffel • Arduino • … dev.mysql.com/doc/refman/5.6/en/connectors-apis.html
  • 33. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.39 Enterprise Management Services and Utilities Backup & Recovery Monitor Workbench Utilities Connection Pool, SQL Interface, Parser, Optimizer, Caches Clients & Connectors Native C API, JDBC, ODBC, .Net, PHP, Ruby, Python, VB, Perl mysqld Clients and Apps Arquitetura MySQL Server Storage Engines InnoDB, MyISAM, Memory, Archive, Cluster (NDB API), etc… Filesystems, Files & Logs Data, Index, Logs…
  • 34. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.40 Cluster Data Nodes NDB NDB Connection Pool, SQL Interface, Parser, Optimizer, Caches Enterprise Management Services and Utilities Backup & Recovery Monitor Workbench Utilities Clients & Connectors Native C API, JDBC, ODBC, .Net, PHP, Ruby, Python, VB, Perl Arquitetura MySQL Cluster Storage Engines InnoDB, MyISAM, Memory, Archive, Cluster (NDB API), etc… Filesystems, Files & Logs Data, Index, Logs… mysqld Clients and Apps ndbd mgm_ndbd Management
  • 35. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.41 Storage Engines MyISAM InnoDB NDB Cluster Transações ✖ ✔ ✔ Nível de Lock Tabela Linha Linha Replicação Assíncrona ou Semi-síncrona Assíncrona ou Semi-síncrona, crash-safe Síncrona, Multi-master, crash-safe sem SPOF Foreign Keys ✖ ✔ ✔ Full-text indexes ✔ ✔ ✖ Compressão de dados somente Leitura ✔ ✖ Caches somente Índices Dados e Índices Dados e Índices Suporte Geoespacial Tipos de Dados e Índices Somente Tipos de Dados somente Tipos de Dados Limite de armazenamento 256TB 64TB 384EB (~3TB em RAM) dev.mysql.com/doc/refman/5.6/en/storage-engines.html
  • 36. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.42 Default Storage Engine InnoDB
  • 37. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.43 Acesso chave-valor ao InnoDB Via Memcached API Usa clients Memcached existentes Sem SQL parsing, ultra-rápido Acesso SQL e NotOnlySQL Operações chave-valor mas também queries SQL, JOINs, FKs, etc. Memcached com Persistência no InnoDB Método transparente para persistir os dados em memória volátil Memcached plug-in no mysqld , mapeado à API nativa do InnoDB Shared process para baixa latência SQL (MySQL Client) InnoDB Storage Engine MySQL Server Memcached plugin Application/Client NoSQL (Memcached Prot.) mysqld http://dev.mysql.com/doc/refman/5.6/en/innodb-memcached.html Flexibilidade MySQL 5.6: InnoDB NoSQL com Memcached
  • 38. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.44 2008 até 4 CPU MySQL 5.0 MySQL AB até 16 CPU MySQL 5.1 Sun até 32 CPU MySQL 5.5 Oracle até 48 CPU MySQL 5.6 Evolução da escalabilidade do MySQL 2009 2010 2013 Atualize o MySQL e use InnoDB.
  • 39. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.45 MySQL 5.6: GA há 17 meses •Performance: +234% para Leituras e +151% para Escritas, SSD •Escalabilidade: 48 cores •Flexibilidade: Memcached API, Full Text •Disponibilidade: mudanças online no schema, export/import tablespaces InnoDB •Performance: até centenas de vezes mais rápido em alguns cenários, estatísticas persistentes •Instrumentação: EXPLAINS com traces e para UPDATES e DELETES Otimizador •Performance: ganhos de 2x a 5x com paralelismo e group commit •Flexibilidade: novas topologias e rastreabilidade com GTIDs •Disponibilidade: automatização de failover e recovery Replicação •PERFORMANCE_SCHEMA mais completaInstrumentação •Segurança •Facilidade de uso •Flexibilidade •...E MAIS... Outras melhorias dev.mysql.com/tech-resources/articles/mysql-5.6-rc.html
  • 40. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.46  PERFORMANCE_SCHEMA  Novas configurações padrão, mais adequadas ao hardware atual  Particionamento melhorado  import/export  mais capacidade e performance  seleção explícita  Backup remoto do Binlog  Slaves com atraso programado  Identificador único universal para servidor (server UUID)  TIME/TIMESTAMP/DATETIME  precisão de fração de segundo, CURRENT_TIMESTAMP default /auto update, TIMESTAMP nullable por padrão  GIS: operações espaciais precisas  E MAIS... Outras melhorias no MySQL 5.6 Mais facilidade de uso e flexibilidade mysql.com/why-mysql/white-papers/whats-new-mysql-5-6
  • 41. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.47 MySQL 5.5.28 MySQL 5.6.7 +234% Ganhos de Performance 0 2.000 4.000 6.000 8.000 10.000 12.000 14.000 16.000 18.000 32 64 128 256 512 TransaçõesporSegundo Conexões MySQL 5.6 vs. 5.5 - Leituras (Linux) Oracle Linux 6 Intel(R) Xeon(R) E7540 x86_64 MySQL leveraging: - 48 of 96 available CPU threads - 2 GHz, 512GB RAM Performance MySQL 5.6: InnoDB SysBench Benchmarks
  • 42. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.48 MySQL 5.5.28 MySQL 5.6.7 +151% Ganhos de Performance 0 2.000 4.000 6.000 8.000 10.000 12.000 32 64 128 256 512 TransaçõesporSegundo Conexões MySQL 5.6 vs. 5.5 – Escritas+Leituras (Linux) Oracle Linux 6 Intel(R) Xeon(R) E7540 x86_64 MySQL leveraging: - 48 of 96 available CPU threads - 2 GHz, 512GB RAM Performance MySQL 5.6: InnoDB SysBench Benchmarks
  • 43. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.49  Thread Pool Plug-In • Adiciona mais inteligência ao modelo padrão de gerenciamento de threads – agrupa e reutiliza • Modelo padrão, sem Thread Pool: 1 thread por conexão, performance excelente, mas limita a escalabilidade ao crescer o número de conexões de usuários • Com Thread Pool: reúso de threds, escala o número de conexões de usuários mantendo os mesmos níveis de performance • Implementado utilizando Thread Pool API Assegura desempenho melhor e sustentável, mesmo quando o número de usuários continua crescendo. MySQL Enterprise Scalability
  • 44. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.50 60x Melhor Escalabilidade comThread Pool MySQL 5.6.11 Oracle Linux 6.3, Unbreakable Kernel 2.6.32 4 sockets, 24 cores, 48 Threads Intel(R) Xeon(R) E7540 2GHz CPUs 512GB DDR3 RAM Thread Pool habilitado/desabilitado
  • 45. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.51 18x Melhor Escalabilidade com Thread Pool Thread Pool habilitado/desabilitado MySQL 5.6.11 Oracle Linux 6.3, Unbreakable Kernel 2.6.32 4 sockets, 24 cores, 48 Threads Intel(R) Xeon(R) E7540 2GHz CPUs 512GB DDR3 RAM
  • 46. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.52 Referências de Escala Social Network Small Medium Large Extra Large Queries/Second <500 <5,000 10,000+ 25,000+ Transactions/Second <100 <1,000 10,000+ 25,000+ Concurrent Read Users <100 <5,000 10,000+ 25,000+ Concurrent Write Users <10 <100 1,000+ 2,500+ Database Size Sessions <2 GB <10 GB 20+ GB 40+ GB eCommerce <2 GB <50 GB 50+ GB 200+ GB Analytics (Multi-Structured Data) <10 GB <1TB 10+ TB 100+ TB Content Management (Meta-Data) <10 GB <500 GB 1+ TB 2+ TB Saiba mais: slideshare.net/MySQLBR/arquiteturas-de-referncia-mysql
  • 47. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.53 MySQL 5.7 Sysbench Benchmark Sysbench Point Select Intel(R) Xeon(R) CPU X7560 x86_64 5 sockets x 8 cores-HT (80 CPU threads) 2.27GHz, 256G RAM Oracle Linux 6.5 2X mais rápido que o MySQL 5.6 Mais de 3X mais rápido que o MySQL 5.5 630,000 QPS
  • 48. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.54 MySQL 5.7: InnoDB Memcached Contribuição do Facebook Intel(R) Xeon(R) CPU X7560 x86_64 8 sockets x 6 cores-HT (96 CPU threads) 2000Mhz, 256G RAM Oracle Linux 6.2 6x mais rápido que o MySQL 5.6 1,150,000 QPS 0 200000 400000 600000 800000 1000000 1200000 1400000 8 16 32 64 128 256 512 1024 QueriesperSecond Concurrent User Sessions 5.7.3 5.6
  • 49. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.55 MySQL é adequado para o meu produto?  Quais conceitos fundamentais para uso correto do MySQL?  Quais plataformas e linguagens posso utilizar?  Quais os limites da tecnologia?  Quais recursos de alta-disponibilidade (HA) e escalabilidade?  Quais recursos de segurança? Dúvidas técnicas, requisitos não funcionais
  • 50. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.56 Aplicação Master Slave • Modelo assíncrono (padrão) • Modelo semi-síncrono (a partir da versão 5.5) Escritas & Leituras Replicação MySQL
  • 51. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.57 Aplicação Master Slave • Master down • Slave promovido para Master Escritas & Leituras MySQL failover
  • 52. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.58 Replicação MySQL: escalando LEITURAS • Divisão de leituras e escritas (R/W Split) • É possível adicionar mais slaves, dividir a carga Leituras Aplicação Master Slave Escritas & Leituras Slave … Leituras
  • 53. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.59 Multi-Source Replication  Consolida updates de múltiplos Masters em um Slave – Visão consolidada – Novas topologias – Ponto centralizado de backup – Relatórios mais fáceis  Compatível com Semi-Synchronous Replication & Multi-Thread Slaves  Master-specific slave filters  Aplicação continua responsável por manter data sets não-conflitantes entre as diversas fontes Binlog Master 1 Binlog Master 2 … … Binlog Master N IO 1 Relay 1 Coordinator W1 W2 … WX IO 2 Relay 2 Coordinator W1 W2 … WX … … Coordinator W1 W2 … WX IO N Relay N Coordinator W1 W2 … WX Slave labs.mysql.com
  • 54. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.60 MySQL Fabric 1.4 GA (MySQL Utilities 1.4.3)  Alta disponibilidade: – Monitoramento do Server com failover automático e transparente para aplicação  Conectores devem ser “Fabric-aware”: – Java, PHP, Python  Sem Proxy, sem latencia extra e SPoF  Escalabilidade de escrita com sharding: – Aplicação define a shard key (Range ou Hash) – Ferramentas para re-sharding – Tabelas globais & global updates Alta-disponibilidade + escalabilidade de escrita com sharding MySQL Fabric Connector Application Read-slaves SQL Master group Read-slaves Master group
  • 55. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.61 API Nodes Arquitetura MySQL Cluster Data Nodes ndbd ndbd Management mgm_ndbd Clients Application Layer Data Layer ndbd ndbd
  • 56. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.62 MySQL Cluster 7.4  Ganho de Performance sobre v7.3 – 47% (Read-Only) – 38% (Read-Write) Melhor performance e simplicidade operacional labs.mysql.com  Restarts mais rápidos dos nós – Recovering nodes rejoin the cluster faster
  • 57. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.63 Soluções de HA homologadas pela Oracle MySQL Replication MySQL Fabric Oracle VM Template Solaris Cluster Windows Cluster DRBD MySQL Cluster Clustering Mode Master + Slaves Master + Slaves Active/Pass ive Active/Pass ive Active/Passi ve Active/Pa ssive Multi- Master App Auto-Failover ✖ ✔ ✔ ✔ ✔ ✔ ✔ Data Layer Auto-Failover ✖ ✔ ✔ ✔ ✔ ✔ ✔ Zero Data Loss MySQL 5.7 ✔ ✔ ✔ ✔ ✔ ✔ Failover Time N/A Secs Secs + Secs + Secs + Secs + < 1 Sec Scale-out Reads ✔ ✖ ✖ ✖ ✖ ✔ Cross-shard operations N/A ✖ N/A N/A N/A N/A ✔ Transparent routing ✖ For HA ✔ ✔ ✔ ✔ ✔ Shared Nothing ✔ ✔ ✖ ✖ ✖ ✔ ✔ Storage Engine InnoDB InnoDB InnoDB InnoDB InnoDB InnoDB NDB Single Vendor Support ✔ ✔ ✔ ✔ ✖ ✔ ✔ Platform Support All All Linux Solaris Windows Linux All
  • 58. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.64  PAM (Pluggable Authentication Modules) Plug-In • Autenticação externa via métodos externos • Interface padrão, funciona com Unix, LDAP, Kerberos, outros • Proxy-users – mapeamento grupos de usuários para 1 usuário  Windows Plug-In • Acesso nativo via serviços do Windows • Autentica usuários já logados no Windows (Single Sign On) • Grupos/usuários do Windows Active Directory com Proxy-users Integra o MySQL com a infraestrutura de segurança existente e SOPs. Mais produtividade na gestão de usuários. MySQL Enterprise Security External Authentication Plug-Ins
  • 59. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.65 Authenticate CREATE USER win_joe IDENTIFIED WITH authentication_windows AS ‘joe'; LDAP/AD PAM / Windows Auth Usuário/senha definidos no diretório Privilégios definidos no MySQL e mapeados para usuários/grupos do diretório MySQL Enterprise Security External Authentication Plug-Ins
  • 60. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.66 MySQL Enterprise Audit  Audit Plug-In • Registro de conexões, logins, queries dos servidores MySQL • Políticas definidas pelo DBA para filtragem e rotação de logs • Habilitado ou desabilitado dinamicamente, sem reiniciar o servidor • Log em XML de acordo com especificação padrão Oracle Audit • Requer MySQL 5.5.28 ou superior • Implementado através MySQL 5.5 Audit API Adiciona conformidade regulatória em aplicações MySQL: HIPAA, Sarbanes-Oxley, PCI, etc.
  • 61. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.67 2. Usuário conecta-se e executa queries MySQL Enterprise Audit 1. DBA habilita no Server1 Server1 3. Conexões e queries dos usuários aparecem no log
  • 62. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.68 Saiba mais...  Manual de Referência http://dev.mysql.com/doc/refman/5.6/en/index.html  Whitepapers, webinars, artigos... http://www.mysql.com/why-mysql/  Livros – MySQL, Fifth Edition by Paul DuBois <- mais para desenvolvedores – High Performance MySQL, 3rd Edition <- mais para dba’s – MySQL High Availability <- desenvolvedores e dba’s – etc, etc, etc...  Benchmarks, Capacity Planning, Stress Testing – Ferramentas de benchmark http://dev.mysql.com/doc/refman/5.6/en/mysql-benchmarks.html – Benchmarks expert http://dimitrik.free.fr/blog/ Conhecimento técnico em MySQL
  • 63. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.69 Ciclo evolutivo do produto/aplicação Identificação do Mercado e Modelo de Negócios1 Análise e Especificação de Requisitos2 Arquitetura e Prototipagem3 Implementação e Testes4 Empacotamento e Distribuição5 Manutenção Correções e atualizações/migrações6 n iterações
  • 64. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.70 Usando o MySQL  Como montar o ambiente de desenvolvimento?  Ferramentas para o desenvolvimento  Ferramentas para Qualidade  Suporte ao desenvolvedor  Onde buscar mais conhecimento? Hello World, ferramentas e mais conhecimento
  • 65. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.71 Instalação  No Windows – Installer ou Web Installer – Next, next, finish  No Linux e demais SO’s – Prefira os binários pré-compilados da sua distribuição – Repositórios YUM e APT disponíveis Baixe e instale em menos de 15 minutos  Download – Community: dev.mysql.com/downloads ou dev.mysql.com/downloads/repo – Comercial: edelivery.oracle.com (trial)
  • 66. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.72 Ciclo evolutivo do produto/aplicação Identificação do Mercado e Modelo de Negócios1 Análise e Especificação de Requisitos2 Arquitetura e Prototipagem3 Implementação e Testes4 Empacotamento e Distribuição5 Manutenção Correções e atualizações/migrações6 n iterações
  • 67. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.73 Prefira os binários pré-compilados
  • 68. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.74 Repositórios YUM e APT para MySQL  Maneira simples e conveniente de instalar e atualizar produtos MySQL  Suporta as distribuições Enterprise Linux – RedHat Enterprise/Oracle Linux – Fedora – Em breve: Debian/Ubuntu  Inclui os pacotes mais atuais – MySQL Database – MySQL Workbench – MySQL Connector/ ODBC – MySQL Connector/Python – MySQL Utilities Benefícios para Usuários Finais e Distribuições Linux Também disponível via NuGet para desenvolvedores .NET Mais de 50% dos downloads para Fedora/RedHat já são feitos do repositório nuget.org/profiles/MySQL www.alastori.com.br/2014/05/tutorial-de- instalacao-do-mysql-56-e.html
  • 69. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.75 Iniciar ou Parar o servidor MySQL no Windows …ou via MySQL Notifier
  • 70. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.76 Iniciar ou Parar o servidor MySQL no Linux /usr/local/mysql/bin> mysqld_safe --defaults-file=/etc/my.cnf & /usr/local/mysql/bin> mysqladmin shutdown Parar: Iniciar: dev.mysql.com/doc/refman/5.6/en/mysqld-safe.html
  • 71. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.77 Primeira conexão C:Program FilesMySQLMySQL Server 5.6bin>mysql -uroot -p Enter password: **** Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 8 Server version: 5.6.14 MySQL Community Server (GPL) Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql>
  • 72. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.78 Teste via MySQL Workbench 1/2
  • 73. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.79 Teste via MySQL Workbench 2/2
  • 74. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.80 Crie rapidamente seu protótipo Hello World em Java C:>set CLASSPATH CLASSPATH=.;C:Program Files (x86)Javajre6libextQTJava.zip;C:Program FilesMySQLmysql-connector-java-5.1.22mysql-connector-java-5.1.22-bin.jar Confira: Adicione o Connector ao classpath:
  • 75. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.81 HelloMysql.java 1/2 import java.sql.*; public class HelloMysql { public static void main(String args[]){ System.out.println("Tentando conectar ao MySQL..."); try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/mysql"; String usuario = "root"; String senha = "root"; Connection con = DriverManager.getConnection(url, usuario, senha); System.out.println("URL: " + url); System.out.println("Connection: " + con); Continua…
  • 76. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.82 HelloMysql.java 2/2 Statement stmt = con.createStatement(); //objeto Statement ResultSet rs; //objeto ResultSet rs = stmt.executeQuery("SELECT * FROM world.country"); System.out.println("Ola mundo!"); while(rs.next()){ String nomePais = rs.getString("Name"); System.out.print(nomePais + ", "); }//end while con.close(); } catch( Exception e ) { e.printStackTrace(); }//end catch }//end main }//end class HelloMysql PRONTO!
  • 77. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.83 java HelloMysql C:tutorial>javac HelloMysql.java C:tutorial>java HelloMysql Tentando conectar ao MySQL... URL: jdbc:mysql://localhost:3306/mysql Connection: com.mysql.jdbc.JDBC4Connection@ed07f45 Ola mundo! Aruba, Afghanistan, Angola, Anguilla, Albania, Andorra, Netherlands Antilles, Un ited Arab Emirates, Argentina, Armenia, American Samoa, Antarctica, French South ern territories, Antigua and Barbuda, Australia, Austria, Azerbaijan, Burundi, B elgium, Benin, Burkina Faso, Bangladesh, Bulgaria, Bahrain, Bahamas, Bosnia and Herzegovina, Belarus, Belize, Bermuda, Bolivia, Brazil, Barbados, Brunei, Bhutan … ietnam, Vanuatu, Wallis and Futuna, Samoa, Yemen, Yugoslavia, South Africa, Zamb ia, Zimbabwe,
  • 78. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.84 MySQL for Visual Studio  Design Time Support  Query Designer  Stored Routine Debugging  Entity Framework Integração total com a plataforma .Net mysql.com/why-mysql/windows/visualstudio
  • 79. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.86 MySQL Workbench 6 Para Windows, Linux, Solaris, Apple Mac OS…  MySQL Database IDE  Milhões de downloads  Desenvolvedores e DBA’s
  • 80. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.87 MySQL Workbench 6 Configurações do Servidor Árvore de objetos e esquemas no Servidor Área de Queries Barras laterais com informações do contexto atual e biblioteca de Snipets Respostas e Histórico
  • 81. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.88 MySQL Workbench 6.1 Dashboards: Performance & Status Analyze hotspots, costly SQL statements, wait times, locks, InnoDB stats, and more Network, Server, InnoDB
  • 82. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.89 MySQL Enterprise Monitor 3.0  Análise de gargalos e queries  Encontre e corrija problemas visualmente  Monitoramento em tempo real da performance e disponibilidade  Monitore discos e faça capacity planning  Arquitetura que não exige agentes  Agente remoto monitora SO  Comece a monitorar em 10 minutos
  • 83. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.90
  • 84. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.91
  • 85. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.92 Explain Query
  • 86. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.93 QRTi Query Response Time Index
  • 87. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.94 Capacity Planning
  • 88. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.95  Revisão de queries lentas  Revisão e auxílio na modelagem  Auxílio na definição de estratégias de particionamento  Performance tuning  Revisão de código (Triggers, Procedures, Functions, UDFs)  Entre outros... Suporte consultivo MySQL Engenheiros MySQL como parte do seu time Saiba mais: mysql.com/support/consultative.html
  • 89. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.96 MySQL for Beginners Ed 3 MySQL for Database Administrators Ed 3.1 MySQL Performance Tuning MySQL High Availability MySQL Cluster MySQL DBA Introduction to MySQL 5.5 MySQL Developers Techniques MySQL for Beginners Ed 3 MySQL and PHP Developing Dynamic Web Applications MySQL for Developers Ed 2 MySQL Advanced Stored Procedures MySQLDeveloper education.oracle.com/mysql Opcional Necessário Treinamentos e certificações Oracle Certified Professional, MySQL 5.6 DBA Oracle Certified Expert, MySQL Cluster DBA Certificações Oracle Certified Professional, MySQL 5.6 Developer
  • 90. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.97 Ciclo evolutivo do produto/aplicação Identificação do Mercado e Modelo de Negócios1 Análise e Especificação de Requisitos2 Arquitetura e Prototipagem3 Implementação e Testes4 Empacotamento e Distribuição5 Manutenção Correções e atualizações/migrações6 n iterações
  • 91. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.98 Como distribuir meu produto com MySQL?  Cloud: SaaS  On-Premise: Embarcado  Como embarcar? Modelos e métodos de distribuição
  • 92. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.99 Como embarcar Opções de distribuição embedded e deeply embedded client-server (embedded) • Inclua os binários com sua aplicação e execute via linha de comando -- ou também -- • No Windows • use silent installation, MySQL installer • Demais SO’s • instale e configure usando TARs ou RPMs libmysqld (deeply embedded) • 5 passos: • desenvolva aplicações em C com chamadas para iniciar ou parar o 'servidor' • compile normalmente • link com libmysqld • configure um arquivo my.cnf ou my.ini • distribua a aplicação normalmente
  • 93. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.100 Como embarcar  roda o MySQL sem necessidade de instalação  pode-se colocar em um subdiretório da aplicação  Parâmetros importantes: --port= porta em que o MySQL escuta conexões --defaults-file= localização do arquivo de configurações my.ini ou my.cnf --datadir= localização dos arquivos de dados --skip-networking restringe conexões TCP/IP liberando apenas socket file (Linux) ou named-pipes (Windows) --socket= localização do Unix socket file para conexões locais Client-server via linha de comando mysqld.exe --port=3306 --defaults-file="C:mysqlmy.ini" --datadir="C:mysqldata” Exemplo de execução:
  • 94. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.101 Saiba mais...  Silent Installation (Windows) http://dev.mysql.com/doc/refman/5.6/en/mysql-installer.html  Usando TAR (Linux) http://dev.mysql.com/doc/refman/5.6/en/binary-installation.html http://dev.mysql.com/doc/refman/5.6/en/automatic-start.html  Usando RPM (Linux) http://dev.mysql.com/doc/refman/5.6/en/linux-installation-rpm.html  Exemplo de aplicação com libmysqld http://dev.mysql.com/doc/refman/5.6/en/libmysqld-example.html Como embarcar
  • 95. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.102 Ciclo evolutivo do produto/aplicação Identificação do Mercado e Modelo de Negócios1 Análise e Especificação de Requisitos2 Arquitetura e Prototipagem3 Implementação e Testes4 Empacotamento e Distribuição5 Manutenção Correções e atualizações/migrações6 n iterações
  • 96. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.104  Acesso direto 24 x 7 x 365  Número ilimitado de incidentes  Base de conhecimento  Suporte Consultivo  Tradução para o Português  Hot Fixes para Bugs  Releases de manutenção do MySQL  Maior time de especialistas MySQL no mundo  Suportados pelos próprios Desenvolvedores do MySQL "The rep that assisted me was simply outstanding. He immediately recognized the cause of my problem and provided the resolution.” mysql.com/support/quotes Oracle Premier Support para MySQL Engenheiros MySQL como parte do seu time
  • 97. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.105 MySQL Enterprise Backup  Backup online para InnoDB  Backups completos, incrementais, parciais (automatizados via script)  Compressão, Criptografia  Opções de Recovery: Point in Time, Completo, Parcial  Metadados de status, progresso e histórico  Tamanho ilimitado do BD  Multi-Plataforma: Windows, Linux, Unix  Compatível SBT, Oracle Secure Backup  Suporte Cloud (Amazon S3) MEB Backup Files MySQL Database Files mysqlbackup Backup e Recovery mais rápidos e online.
  • 98. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.106 MySQL Enterprise Backup Menor tempo em backups e restores, menos downtime
  • 99. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.107
  • 100. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.108
  • 101. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.109
  • 102. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.110
  • 103. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.111
  • 104. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.112 Eventos
  • 105. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.113
  • 106. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.114
  • 107. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.115
  • 108. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.116 Advisors
  • 109. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.117
  • 110. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.118
  • 111. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.119
  • 112. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.120
  • 113. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.121 Atualizações / Upgrades  Binária – substitua os binários, suba o servidor e rode mysql_upgrade – obedeça a ordem 5.0 > 5.1 > 5.5 > 5.6  mysqldump – faça o dump dos databases e restaure numa nova instalação  Workbench – Migration Wizard / Schema Transfer Wizard  Replicação – de um Master numa versão mais antiga para um Slave mais novo Possíveis estratégias dev.mysql.com/doc/refman/5.6/en/upgrading.html
  • 114. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.122 MySQL Workbench 6  Fácil Migração – Microsoft SQL Server – PostgreSQL – Sybase ASE – Sybase SQL Anywhere – SQLite, MS Access  Next, Next, Finish  Migra estrutura e dados  Não migra procedures Migration Wizard dev.mysql.com/doc/workbench/en/wb-migration-overview-steps.html
  • 115. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.123 Migração para MySQL Onde faz sentido migrar, migre. Do contrário, não migre. Aplicação… Método de migração Complexidade Usa Standard SQL Ferramenta MySQL Workbench ou CSV dumps Baixa: migre, teste e pronto! Usa intensamente Stored Procedures, Triggers Ferramentas de terceiros (SQLWays) Média: dependendo da complexidade das procedures, pode ser fácil Usa funcionalidade especializada do BD e não nativa do MySQL Ferramentas de terceiros ou re-arquitetura Alta: pode ser fácil, mas também pode ser muito difícil Empacotada ou desenvolvida e mantida por fornecedor que não certifica para MySQL Acordo com o fornecedor Não recomendado migrar sem ajuda do fornecedor, raras exceções
  • 116. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.124 Oracle para MySQL  Exporting Data from Oracle – Oracle SQL Developer – SQL*Plus – Using PL/SQL: UTL FILE package  Importing Data into MySQL – LOAD ... INFILE – CSV storage engine  Migration Tools – Golden Gate, Pentaho, Convert-in, SQLWays Possíveis estratégias support.oracle.com/epmos/faces/DocumentDisplay?id=1477151.1
  • 117. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.125 Ciclo evolutivo do produto/aplicação Identificação do Mercado e Modelo de Negócios1 Análise e Especificação de Requisitos2 Arquitetura e Prototipagem3 Implementação e Testes4 Empacotamento e Distribuição5 Manutenção Correções e atualizações/migrações6 n iterações
  • 118. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.126 MySQL Enterprise Edition Suporte + Backup + Monitor + Workbench + Plug-ins Plug-ins Suporte Backup Monitor & Workbench Escalabilidade Segurança Auditoria
  • 119. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.127 Sumário  O MySQL é o banco de dados ideal para muitos casos de uso, atendendo muito bem requisitos de: segurança, performance, escalabilidade, confiabilidade, robustez, disponibilidade, portabilidade, operacionalização (DevOps), etc.  Baixe, instale, crie protótipos ou migre em poucos minutos!  A Oracle pode ajudá-lo a adotar e distribuir o MySQL com menor risco e com vantagens econômicas para seu negócio
  • 120. Copyright © 2014, Oracle and/or its affiliates. All rights reserved.128 @MySQLBR meetup.com/MySQL-BR facebook.com/MySQLBR Obrigado!
  • 121. MySQL para Desenvolvedores de Produto Perguntas?