MySQL para DesenvolvedoresAirton Lastoriairton.lastori@oracle.com30-jan-20131   Copyright © 2012, Oracle and/or its affili...
@MySQLBR                                                            facebook.com/MySQLBR                                  ...
3   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classifica...
Alguns clientes MySQL4   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protect...
Alguns clientes MySQL                                                                   fonte: alexa.com/topsites 30-jan-2...
Alguns clientes MySQL                                                                                          mysql.com/c...
Alguns clientes MySQL                                                                                          mysql.com/c...
Tipos de aplicação             70%             60%             50%             40%             30%             20%        ...
Desafio de desenvolvedor #1                          Quais são os requisitos não                         funcionais da min...
Na escolha da solução, considerar...                         Escalabilidade, performance, disponibilidade,                ...
MySQL para desenvolvedores                                                                                                ...
MySQL para desenvolvedores                                                                                                ...
Compromisso Oracle com MySQL Community       Portfólio disponível para download e uso sob GPL                             ...
Conectores: amplo suporte a várias linguagens                                                     Oracle                  ...
MySQL Enterprise Edition       Maior produtividade e mitigação de riscos                                                  ...
MySQL para desenvolvedores                                                                                                ...
Desafio de desenvolvedor #2                      Instalação básica, ambiente de                             desenvolviment...
18   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Information Protection Policy Classific...
No Linux ou Mac, prefira os binários                                                                       mysql.com/downl...
Cliente-Servidor                                                                                                          ...
Iniciar ou Parar o servidor MySQL no Windows          …ou via MySQL Notifier21   Copyright © 2012, Oracle and/or its affil...
Iniciar ou Parar o servidor MySQL no Linux          Iniciar:          /usr/local/mysql/bin> mysqld_safe --defaults-file=/e...
Primeira conexão          C:Program FilesMySQLMySQL Server 5.5bin>mysql -uroot -p          Enter password: ****          W...
Teste via MySQL Workbench 1/224   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Informatio...
Teste via MySQL Workbench 2/225   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Informatio...
Cliente-Servidor                                                                                                     App +...
Desafio de desenvolvedor #3                                                                            Hello World…       ...
Adicione o driver MySQL ao CLASSPATH           caminho completo do .jar             Confira:               C:>set CLASSPAT...
HelloMysql.java 1/2              import java.sql.*;              public class HelloMysql {                 public static v...
HelloMysql.java 2/2                        Statement stmt = con.createStatement();                                        ...
java HelloMysql            C:tutorial>javac HelloMysql.java            C:tutorial>java HelloMysql            Tentando cone...
Próximo passo: documentação          Reference Manual                    1. Tutorial                    2. SQL Syntax     ...
MySQL para desenvolvedores                                                                                                ...
Desafio do desenvolvedor #4                                     Projetar uma solução para                                 ...
Alta-Disponibilidade                                                                                                      ...
Replicação MySQL                                                                                               Aplicação  ...
MySQL failover                                                                                               Aplicação    ...
Alta-Disponibilidade                                                                                                      ...
Soluções certificadas MySQL HA: resumo                                                                                    ...
Desafio do desenvolvedor #5                  Projetar uma solução que possa                   crescer para comportar milhõ...
Escalabilidade: horizontal vs vertical            Scale Out                                                               ...
Evolução da escalabilidade do MySQL                  2008                                                               20...
Benchmarks MySQL 5.5 vs 5.6             Sysbench             32-core             Mesmo Hardware             Tuning óti...
Benchmarks MySQL 5.5 vs 5.6             Sysbench             32-core             Mesmo Hardware             Tuning óti...
Escalabilidade horizontal                                                                                                 ...
Replicação MySQL: escalando LEITURAS                                                                                      ...
Data Sharding: escalando ESCRITAS                                      Table T1                                           ...
Data Sharding: escalando ESCRITAS                                      Table T1                                           ...
Data Sharding: escalando ESCRITAS                                      Table T1                                           ...
Data Sharding: escalando ESCRITAS                                      Table T1                                           ...
Data Sharding: escalando ESCRITAS                                      Table T1                                           ...
Desafios do desenvolvedor #4 + #5                        É possível combinar alta-                     disponibilidade e e...
Data Sharding + Replicação                                      Table T1                                                  ...
Data Sharding + Replicação                                      Table T1                                                  ...
Alta-Disponibilidade: Replicação Síncrona                                      Table T1                                   ...
Data Sharding + Replicação                                      Table T1                                                  ...
Data Sharding + Replicação                                      Table T1                                                  ...
Data Sharding + Replicação                                      Table T1                                                  ...
Casos de muito sucesso            Facebook            Youtube            Twitter            Flickr            Evernot...
MySQL Cluster: auto-sharding                                           Clients                                            ...
APIs de Acesso aos Dados                                                                                                  ...
Alguns Clientes MySQL Cluster62   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Informatio...
Caso de sucesso                                                                                                           ...
MySQL Cluster                      Carrier Grade                                                           • Arquitetura s...
MySQL Cluster Auto-Install (beta)       Simples de instalar e provisionar clusters multi-node       Complementa MySQL Cl...
MySQL Cluster Manager        Para testes em uma única máquina        1.            Download MCM/Cluster edelivery.oracle.c...
Mais sobre como começar com MySQL Cluster                                                                                 ...
Exemplos Memcached API              On-demand Webinar:              NoSQL Memcached API for MySQL Cluster              22 ...
Exemplos JavaScript / Node.js API              Blog:              Tutorial Getting Started with the NoSQL JavaScript / Nod...
Novo Desafio do desenvolvedor                                                                                            B...
MySQL in the Big Data Lifecycle                                                                                           ...
MySQL e Big Data                                                                                                          ...
Sumário                   O MySQL é o banco de dados open source mais popular do                    mundo, usado em grand...
@MySQLBR                                                            facebook.com/MySQLBR                                  ...
MySQL para DesenvolvedoresPerguntas?75   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.   Insert Inf...
Arquitetura MySQL Server                  Clients and Apps                                                                ...
Storage Engines                                                                                        MyISAM             ...
Upcoming SlideShare
Loading in …5
×

MySQL para Desenvolvedores

1,612 views

Published on

O MySQL é o banco de dados open source mais popular do mundo, usado em grandes sites como Facebook, Youtube, Twitter, Globo.com e também em aplicações mobile e embarcadas. Nesta palestra abordaremos várias opções de arquitetura com MySQL, as opções de APIs para interação com MySQL com exemplos de utilização e um guia de como começar a desenvolver para MySQL.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,612
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
71
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

MySQL para Desenvolvedores

  1. 1. MySQL para DesenvolvedoresAirton Lastoriairton.lastori@oracle.com30-jan-20131 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  2. 2. @MySQLBR facebook.com/MySQLBR MySQLBR meetup.com/MySQL-BR2 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  3. 3. 3 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  4. 4. Alguns clientes MySQL4 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  5. 5. Alguns clientes MySQL fonte: alexa.com/topsites 30-jan-20135 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  6. 6. Alguns clientes MySQL mysql.com/customers6 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  7. 7. Alguns clientes MySQL mysql.com/customers7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  8. 8. Tipos de aplicação 70% 60% 50% 40% 30% 20% 10% Enterprise 0% Community8 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  9. 9. Desafio de desenvolvedor #1 Quais são os requisitos não funcionais da minha aplicação?9 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  10. 10. Na escolha da solução, considerar... Escalabilidade, performance, disponibilidade, estabilidade, segurança, simplicidade, flexibilidade, custo total de propriedade, conhecimento da equipe... Ah! Não esqueça da fase de produção, dos DBAs... ferramentas, suporte, rotinas de manutenção.10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  11. 11. MySQL para desenvolvedores Conhecendo melhor o Portfolio universo MySQL para fazer boas escolhas… Ambiente de desenvolvimento Escalabilidade e Alta-disponibilidade11 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  12. 12. MySQL para desenvolvedores Conhecendo melhor o Portfolio universo MySQL para fazer boas escolhas… Ambiente de desenvolvimento Escalabilidade e Alta-disponibilidade12 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  13. 13. Compromisso Oracle com MySQL Community Portfólio disponível para download e uso sob GPL  MySQL Database Community Server  MySQL Cluster  MySQL Workbench  MySQL Connectors  MySQL Proxy  Documentação não GPL  Forums, Lists, Bugs, Blogs…13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  14. 14. Conectores: amplo suporte a várias linguagens Oracle Comunidade • Connector/ODBC • PHP • Connector/Net (ADO.NET) • Perl • Connector/Python • Ruby • Connector/J (JDBC) • TCL • Connector/C (C API) • Eiffel • Connector/C++ (C++ API) • … dev.mysql.com/doc/refman/5.5/en/connectors-apis.html14 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  15. 15. MySQL Enterprise Edition Maior produtividade e mitigação de riscos Oracle Premier Lifetime Support MySQL Enterprise Oracle Product Security Certifications/Integrations MySQL Enterprise MySQL Enterprise Audit Monitor/Query Analyzer MySQL Enterprise MySQL Enterprise Scalability Backup MySQL Enterprise MySQL Workbench High Availability15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  16. 16. MySQL para desenvolvedores Conhecendo melhor o Portfolio universo MySQL para fazer boas escolhas… Ambiente de desenvolvimento Escalabilidade e Alta-disponibilidade16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  17. 17. Desafio de desenvolvedor #2 Instalação básica, ambiente de desenvolvimento… ...em 15 minutos, ou menos!17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  18. 18. 18 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  19. 19. No Linux ou Mac, prefira os binários mysql.com/downloads/mysql19 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  20. 20. Cliente-Servidor Client mysql / mysql.exe Server mysqld / mysqld.exe20 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  21. 21. Iniciar ou Parar o servidor MySQL no Windows …ou via MySQL Notifier21 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  22. 22. Iniciar ou Parar o servidor MySQL no Linux Iniciar: /usr/local/mysql/bin> mysqld_safe --defaults-file=/etc/my.cnf & Parar: /usr/local/mysql/bin> mysqladmin shutdown dev.mysql.com/doc/refman/5.5/en/mysqld-safe.html22 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  23. 23. Primeira conexão C:Program FilesMySQLMySQL Server 5.5bin>mysql -uroot -p Enter password: **** Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 8 Server version: 5.5.28 MySQL Community Server (GPL) Copyright (c) 2000, 2012, 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>23 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  24. 24. Teste via MySQL Workbench 1/224 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  25. 25. Teste via MySQL Workbench 2/225 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  26. 26. Cliente-Servidor App + Connector JDBC, ODBC, .Net, PHP, Python, Perl, Ruby, Native C API… Server mysqld / mysqld.exe26 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  27. 27. Desafio de desenvolvedor #3 Hello World… ...em Java27 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  28. 28. Adicione o driver MySQL ao CLASSPATH caminho completo do .jar Confira: C:>set CLASSPATH CLASSPATH=.;C:Program Files (x86)Javajre6libextQTJava.zip;C:Program FilesMySQLmysql-connector-java-5.1.22mysql-connector-java-5.1.22-bin.jar28 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  29. 29. 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…29 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  30. 30. 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!30 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  31. 31. 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,31 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  32. 32. Próximo passo: documentação Reference Manual 1. Tutorial 2. SQL Syntax 3. Connectors & APIs, Memcached 4. Functions, Views, Stored Programs 5. Optimization dev.mysql.com/doc/refman/5.5/en/index.html32 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  33. 33. MySQL para desenvolvedores Conhecendo melhor o Portfolio universo MySQL para fazer boas escolhas… Ambiente de desenvolvimento Escalabilidade e Alta-disponibilidade33 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  34. 34. Desafio do desenvolvedor #4 Projetar uma solução para disponibilidade 24x7… ...a famosa alta-disponibilidade34 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  35. 35. Alta-Disponibilidade Clustering & Custo & Complexidade Redundância Geográfica Clustering & Virtualização Replicação ISPs & On-Line eCommerce Corporativo Services Telecoms, Militar 9 35 dias 9 4 days 4 dias . 9 8 horas 9 50 min 9 5 min %35 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  36. 36. Replicação MySQL Aplicação Escritas & Leituras Master Slave • Modelo assíncrono (padrão) • Modelo semi-síncrono (a partir da versão 5.5)36 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  37. 37. MySQL failover Aplicação Escritas & Leituras Master Slave • Master down • Slave promovido para Master37 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  38. 38. Alta-Disponibilidade Clustering & Redundância Custo & Complexidade Geográfica Clustering & Virtualização DRBD Replicação Replicação ISPs & On-Line eCommerce Corporativo Services Telecoms, Militar 9 35 dias 9 4 days 4 dias . 9 8 horas 9 50 min 9 5 min %38 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  39. 39. Soluções certificadas MySQL HA: resumo MySQL 5.6 Windows Solaris Oracle VM MySQL DRBD Replication Cluster Cluster Template Cluster Nível de disponibilidade 99.9% 99.95% 99.99% 99.99% 99.99% 99.999% Auto-Failover ✔ ✔ ✔ ✔ ✔ ✔ Sem perda de dados durante ✔ failover Semi-Sync ✔ ✔ ✔ ✔ ✔ Plataformas suportadas All Windows Solaris Linux Linux All Master + Active / Active / Active / Active / Multi- Modo de clusterização Slaves Passive Passive Passive Passive Master Dispensa Shared Storage ✔ ✖ ✖ ✖ ✔ ✔ Ponto único de suporte ✔ ✖ ✔ ✔ ✔ ✔ mysql.com/why-mysql/white-papers/mysql_wp_ha_strategy_guide.php39 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  40. 40. Desafio do desenvolvedor #5 Projetar uma solução que possa crescer para comportar milhões de usuários…40 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  41. 41. Escalabilidade: horizontal vs vertical Scale Out Scale Up • Adicionar mais servidores para • Trocar por hardware mais aumentar performance poderoso, adicionar memória, • MySQL adota esta abordagem CPU em sistemas altamente • Outras soluções normalmente escaláveis em hardware usam hardware proprietário commodity (Intel / AMD) (SMP)41 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  42. 42. Evolução da escalabilidade do MySQL 2008 2009 2010 2013 até 4 CPU até 16 CPU até 32 CPU até 48 CPU MySQL 5.0 MySQL 5.1 MySQL 5.5 MySQL 5.6 MySQL AB Sun Oracle42 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  43. 43. Benchmarks MySQL 5.5 vs 5.6 Sysbench 32-core Mesmo Hardware Tuning ótimo43 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  44. 44. Benchmarks MySQL 5.5 vs 5.6 Sysbench 32-core Mesmo Hardware Tuning ótimo Sysbench 32-core Same Hardware Optimal Tuning44 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  45. 45. Escalabilidade horizontal Particionamento Replicação MySQL Data Sharding Funcional • método mais simples e • dividir a carga em múltiplos • método de maior sucesso mais comum nós, com responsabilidades para escalar aplicações distintas MySQL de grande porte • indicado para aplicações hoje de LEITURA intensiva • os nós podem ter redundância via replicação • dados compartilhados em • problemas com cache para alta-disponibilidade tabelas/caches globais, duplicado em aplicações • normalmente não é SOA com datasets grandes transparente para a aplicação • difícil de adaptar e também recorre ao scale up aplicações legadas para cada database funcional, o que impõe limites45 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  46. 46. Replicação MySQL: escalando LEITURAS Aplicação Escritas & Leituras Leituras Master Slave • Divisão de leituras e escritas (R/W Split) • É possível adicionar mais slaves, dividir a carga46 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  47. 47. Data Sharding: escalando ESCRITAS Table T1 Data Node 1 P1 Data Node 2 P2 P3 Data Node 3 P4 Data Node 447 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  48. 48. Data Sharding: escalando ESCRITAS Table T1 Data Node 1 F1 P1 Data Node 2 P2 P3 Data Node 3 P4 Data Node 448 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  49. 49. Data Sharding: escalando ESCRITAS Table T1 Data Node 1 F1 P1 Data Node 2 F3 P2 P3 Data Node 3 P4 Data Node 449 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  50. 50. Data Sharding: escalando ESCRITAS Table T1 Data Node 1 F1 P1 Data Node 2 F3 P2 P3 Data Node 3 F2 P4 Data Node 450 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  51. 51. Data Sharding: escalando ESCRITAS Table T1 Data Node 1 F1 P1 Data Node 2 F3 P2 P3 Data Node 3 F2 P4 Data Node 4 F451 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  52. 52. Desafios do desenvolvedor #4 + #5 É possível combinar alta- disponibilidade e escalabilidade? ...assim como Facebook, Twitter, Youtube52 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  53. 53. Data Sharding + Replicação Table T1 Data Node 1 F1 P1 Data Node 2 F1 P2 P3 Data Node 3 P4 Data Node 453 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  54. 54. Data Sharding + Replicação Table T1 Data Node 1 F1 F3 P1 Data Node 2 F3 F1 P2 P3 Data Node 3 P4 Data Node 454 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  55. 55. Alta-Disponibilidade: Replicação Síncrona Table T1 Data Node 1 F1 F3 P1 Data Node 2 F3 F1 P2 P3 Data Node 3 F2 P4 Data Node 4 F255 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  56. 56. Data Sharding + Replicação Table T1 Data Node 1 F1 F3 P1 Data Node 2 F3 F1 P2 P3 Data Node 3 F2 F4 P4 Data Node 4 F4 F256 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  57. 57. Data Sharding + Replicação Table T1 Data Node 1 F1 F3 Group 1 P1 Data Node 2 F3 F1 P2 P3 Data Node 3 F2 F4 P4 Group 2 Data Node 4 F4 F257 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  58. 58. Data Sharding + Replicação Table T1 Data Node 1 F1 F3 Group 1 P1 Data Node 2 F3 F1 P2 P3 Data Node 3 F2 F4 P4 Group 2 Data Node 4 F4 F258 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  59. 59. Casos de muito sucesso  Facebook  Youtube  Twitter  Flickr  Evernote  Pinterest … highscalability.com59 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  60. 60. MySQL Cluster: auto-sharding Clients Application LayerManagement Management Data Layer Table T1 F1 F3 F2 F4 P1 F3 F1 F4 F2 P2 P3 MySQL Cluster Data Nodes P4 60 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  61. 61. APIs de Acesso aos Dados Os mesmos dados acessados simultaneamente através de interfaces SQL e NoSQL61 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  62. 62. Alguns Clientes MySQL Cluster62 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  63. 63. Caso de sucesso •2 milhões usuários, com 30.000 novos usuários por dia •10.000 usuários concorrentes •10.000 Transações Por Segundo •99.999% uptime “The MySQL support service has been essential in helping us for troubleshooting and giving recommendations for the production cluster.” Carlos Morales (DBA), Playfulplay.com blogs.oracle.com/MySQL/entry/mysql_cluster_powers_el_chavo63 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  64. 64. MySQL Cluster Carrier Grade • Arquitetura shared-nothing in-memory parallel Database • Modelo relacional ACID, SQL • 99.999% de disponibilidade Alta Disponibilidade • Self-healing, failover abaixo de 1 segundo • Performance em tempo real para altas cargas Alta Performance • Latência baixa e preditiva • Elasticidade, crescimento incremental Escalabilidade • Escalabilidade linear, distribuition aware • Open Source, hardware commodity Open Source • APIs NoSQL (C++, Java, Memcached, Node.js)64 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  65. 65. MySQL Cluster Auto-Install (beta)  Simples de instalar e provisionar clusters multi-node  Complementa MySQL Cluster Manager no gerenciamento de cliclo de vida65 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  66. 66. MySQL Cluster Manager Para testes em uma única máquina 1. Download MCM/Cluster edelivery.oracle.com: 2. Unzip e execute o comando: C:MySQLmcmbin> mcmd –bootstrap MySQL Cluster Manager 1.1.2 started Connect to MySQL Cluster Manager by running “C:MySQLmcmbinmcm" -a NOVA:1862 Configuring default cluster mycluster... Starting default cluster mycluster... Cluster mycluster started successfully ndb_mgmd NOVA:1186 ndbd NOVA ndbd NOVA mysqld NOVA:3306 mysqld NOVA:3307 ndbapi * Connect to the database by running “C:MySQLmcmclusterbinmysql" -h NOVA -P 3306 -u root66 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  67. 67. Mais sobre como começar com MySQL Cluster Whitepaper: MySQL Cluster Evaluation Guide February 2012 mysql.com/why-mysql/white-papers/mysql- cluster-evaluation-guide/67 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  68. 68. Exemplos Memcached API On-demand Webinar: NoSQL Memcached API for MySQL Cluster 22 August 2012 mysql.com/news-and-events/on-demand-webinars/display-od-723.html68 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  69. 69. Exemplos JavaScript / Node.js API Blog: Tutorial Getting Started with the NoSQL JavaScript / Node.js API for MySQL Cluster 10 June 2012 blogs.oracle.com/MySQL/entry/tutorial_getting_started_with_the69 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  70. 70. Novo Desafio do desenvolvedor Big Data70 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  71. 71. MySQL in the Big Data Lifecycle ACQUIRE DECIDE BI Solutions NoSQL APIs Binlog API ANALYZE ORGANIZE71 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  72. 72. MySQL e Big Data Whitepaper: MySQL and Hadoop – Big Data Integration December 2012 mysql.com/why-mysql/white-papers/mysql- and-hadoop-guide-to-big-data-integration/72 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  73. 73. Sumário  O MySQL é o banco de dados open source mais popular do mundo, usado em grandes sites, aplicações mobile e embarcadas.  Há várias opções de arquiteturas e APIs, oferecendo enorme flexibilidade, escalabilidade e alta-disponibilidade.  Instale e comece a usar em menos de 15min. Use e abuse da documentação!73 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  74. 74. @MySQLBR facebook.com/MySQLBR Obrigado! meetup.com/MySQL-BR74 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  75. 75. MySQL para DesenvolvedoresPerguntas?75 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  76. 76. Arquitetura MySQL Server Clients and Apps Clients & Connectors mysqld Native C API, JDBC, ODBC, .Net, PHP, Ruby, Python, VB, Perl Connection Pool, SQL Interface, Parser, Optimizer, Caches Enterprise Management Services and Utilities Backup & Recovery Storage Engines Monitor InnoDB, MyISAM, Memory, Archive, Cluster (NDB API), etc… Workbench Utilities Filesystems, Files and Logs Data, Index, Redo, Undo, Binary, Error, Slow76 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12
  77. 77. Storage Engines MyISAM InnoDB NDB Cluster Transações ✖ ✔ ✔ Nível de Lock Tabela Linha Linha Assíncrona ou Assíncrona ou Replicação Síncrona, Multi-master Semi-síncrona Semi-síncrona Foreign Keys ✖ ✔ a partir da v7.3 Full-text indexes ✔ a partir da v5.6 ✖ Compressão de dados somente Leitura ✔ ✖ Caches somente Índices Dados e Índices Dados e Índices Suporte Geospacial Tipos de Dados e Índices somente Tipos de Dados somente Tipos de Dados Limite de armazenamento 256TB 64TB 384EB dev.mysql.com/doc/refman/5.5/en/storage-engines.html77 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12

×