33
MySQL 5.6 kÛgC ņŏťš ũŦńŐŊ @RKajiyama MySQLƤƮž

2012.10.20 OSC 2012 Hiroshima

Embed Size (px)

DESCRIPTION

MySQL

Citation preview

Page 1: 2012.10.20 OSC 2012 Hiroshima

MySQL 5.6 ��kÛgC ņŏťšğũŦńŐŊ @RKajiyama

��MySQLƤƮž �

Page 2: 2012.10.20 OSC 2012 Hiroshima

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

All GA!

MySQL Enterprise Backup 3.7 Oracle VM Template for MySQL Enterprise Edition MySQL Enterprise Oracle Certifications MySQL Windows Installer New MySQL Enterprise Commercial Extensions

MySQL Database 5.6 DMR* MySQL Cluster 7.2 DMR

MySQL Labs! (Ļearly and oftenļ)

All GA!

MySQL Cluster 7.2 MySQL Utilities 1.0.6 Database Migration Wizard New Windows Tools/Features New MySQL Enterprise Commercial Extensions MySQL Database 5.6 RC MySQL Cluster 7.3 DMR MySQL Cluster features in MySQL Labs

*Development Milestone Release

2010 2011 2012

All GA!

New!

Ă-ŭÑŊŪMySQL�

Page 3: 2012.10.20 OSC 2012 Hiroshima

The world's most popular open source database �¶Ř�Ť�1ŎŗŃŪŶƮƘƬƄƮƁğƊƮƅƙƮƁ

Page 4: 2012.10.20 OSC 2012 Hiroshima

�àś7¿ŝď¸äìŅŧşƘƦƈƋƖŵƮƟŭŽƜƮƋ

!°*¯ŝĞŃƝƨƇƁƩƈƌơƊƨ

DMLťDDLŝã�ĿżƁƋƙƮƁŝŶƘƉŰƝűžĿŹŴƧťÎ�ƃƈ

ƋśŚŝŸƢƈſƣ

ůƘƧŻƮſƥƬŜ�ćś�ÔťfÔŭs�ŐŪ�ùfŝĞŃŁƁƋƩƮƀŴƬƀƬł

7¿ŝ¬°ƁƋƩƮƀŭ%²5Ô

MySQL&Database&�

Page 5: 2012.10.20 OSC 2012 Hiroshima

MySQLŝܹśƁƋƩƮƀŴƬƀƬ�•  ĩĶĶķħĦĤğƋƦƬžŹſƥƬSdŝŴƬƀƬ�

–  īĺįĭĪğģġģņŨƊƖŵƨƋŝŴƬƀƬŜ�–  ÚƪƈŹĿíŢ2ũ�òfĿGĉŸƮĿİĥĿƛƈƋƒƈŹůƈƘ�

•  īĨīĬĮıĤğ­OŝƉƮƗƨŭűƬƠơƧƊƮƅƙƮƁ-�–  ƋƦƬžŹſƥƬęSdĿƊƮƅ�Ñ-©Ŏ�

•  ĥĸIJĴĵĹijĤğ0ªĠo�ŝŢŭç5ŐŪŴƬƀƬ�–  ƊƮƅF��5ĿÕ+¹Ŝ?Ò�

•  īĺĩįĥīĤğģġĢšŘŝƊƖŵƨƋ�–  ƋƦƬžŹſƥƬęSdĿ�}�Ê�–  ƖƦƈƋƖŮűƨŝ��–  �þŞ%²Ň£W�:�

Page 6: 2012.10.20 OSC 2012 Hiroshima

MySQL&Serverć²�&

&•  Facebook&–&È10�ƤƮžŇ0)ŐŪ�¶�IŝSNS&

–  {.6ŝMySQLŽƮƒŭĄ²�&

•  #zŸƢƈſƣmemcachedřÌŢ8ŬőŗñÙ#z&

•  ƤƮžŝe§śE)ŜSd(2008\1�→2010\4�)&

•  ƩƘƧŻƮſƥƬ*ŘÇ>IĒŭ��ŐŪƊƮƅúĀ&*&MySQLŝ�¦�Ô&

•  ¾ĐŝƋƦƖŰƈŹ&–  1,300�ŹŴƧ��&

–  0ªƳ3,700�Ú&

–  ��Ƴ350�Ú&

–  440�IOPS&

Page 7: 2012.10.20 OSC 2012 Hiroshima

MySQL&5.6&RC&

Page 8: 2012.10.20 OSC 2012 Hiroshima

MySQL&5.6:&�śF�¨�

•  ŶƘƉŰƝűž:&&ƓƖŵƮƝƬƁ&ƁŻƮƦƔƧƉŰ�

•  ƓƖŵƮƝƬƁƭƁŸƮƝ:&&ŧũêËśÏågC�

•  InnoDB:&ƋƦƬžŹſƥƬƭƁƨƮƘƈƋŝ:��•  ƩƘƧŻƮſƥƬ:&ōŨśŪ5²fřƊƮƅŝ|8f�•  ŁNotOnlySQLłŶƘſƥƬ:&ōŨśŪ�ùf�

Page 9: 2012.10.20 OSC 2012 Hiroshima

•  ŽƗŹŴƧŝĞā- •  LIMIT4ŘW{ŝƩżƮƌŭ2bŐŪĔŝƖŮűƨƭƄƮƋŭ�ć-ğ

•  3�ŝPÚā]ğ – 40¾ņŨ10¾Ŝ¼Ò •  űƬƊƈŹƁ��ŝƘƈſƣƆŲƬ

•  PÚā]:�ğ – 15¾ņŨ90ƞƧ¾Ŝ¼Ò •  ƒƈƇƭŸƮƭůŹƃƁřß{Å=ŝíŢ2ũ

•  PÚā]:� – 2000¾ņŨ10¾Ŝ¼Ò •  FROMņŨŝƔƣƮƲŽƗŹŴƧŝPƊƮƅ2bŭă^ğ

•  EXPLAINŜSŐŪPÚ�Đŭ240�:� – 8#ņŨ2¾Ŝ¼Ò •  INSERTĿUPDATEĿŅŧşDELETEŜSŐŪEXPLAIN •  ÐѹśŶƘƉŰƝűžÏågC - InnoDB •  ŶƘƉŰƝűžŝƋƩƮƁ

MySQL 5.6.4:ŶƘƉŰƝűž

Page 10: 2012.10.20 OSC 2012 Hiroshima

P*åµŝ½ëťƊƒƈźŭŧũÆ/Ŝ •  EXPLAIN •  INSERT, UPDATE, DELETE •  JSONƖŵƮƝƈƋŜŧŪ"(

•  InnoDBŝÀ�Ïåŭ ŶƘƉŰƝűž²Ŝ�Ñ- •  Optimizer Traces

MySQL 5.6: Optimizer

Page 11: 2012.10.20 OSC 2012 Hiroshima

•  ƁƉƮƋƠƬƋƲƁƉƮƀ&

• �ŤƧƄƮƁ¢óŝHŃŹŴƧŞƴğğ�ĐŇņņŕŗŃŪŝŞŚŋņƴ&

•  ƉƮƗƨƲűƬƊƈŹƁI/OĿƉƮƗƨƭƪƈŹ&

• �ŤñÙťÂ8ŇHŃůƘƧŻƮſƥƬƭƉƮƗƨƲűƬƊƈŹƁŞƴ&

• ƤƮžƮƲƛƁƋƲůŷŲƬƋ&•  ƧƄƮƁŭŤŕřŤ¢óŎŗŃŪůƘƧŻƮſƥƬƭƤƮžƲƛƁƋƲůƘƧŻƮſƥƬŞƴ&

•  ƏƈƋƫƮŹI/O&• ƏƈƋƫƮŹŝñÙŞƴğƃƈſƥƬŝůűƌƨƭƅűƟŞƴ&

• Ėå�ğ&•  &ƁƩƈƌĿƤƮžƮĿƛƁƋĿůŷŲƬƋĿŶƗƀųŹƋŌřŜÏågCŭĖå&

MySQL 5.6 – ƓƖŵƮƝƬƁƭƁŸƮƝŝå¤ ƊƮƅƙƮƁƭƘƪƖŮűƧƬźƲůƘƧŻƮſƥƬƭƇƣƮƎƬźŝ:�

Page 12: 2012.10.20 OSC 2012 Hiroshima

  ƓƖŵƮƝƬƁřƁŻƮƦƔƧƉŰŭ:� -  3ŃmutexŭpđĿCPUŸƢƈſƣŝ�� -  ƁƩƈƌŝyØř9�P*fŝ:� -  0ªT²ƋƦƬžŹſƥƬŜŧŪ0ªfÔŝ:� -  SSDŠŝ�ć-

  Ą²ťď¸ŝ�ùfŭ:� -  ÜĚB(ƊƮƅƖŮűƨ)ŭOSżƝƬƌŘżƕƮ -  NoSQL, InnoDBŠŝŸƮƭƒƧƣƮAŘŝůŹƃƁ

MySQL&5.6:&InnoDB&–&Improvements&

Page 13: 2012.10.20 OSC 2012 Hiroshima

  ŶƬƦűƬDDL -  ADD/DROP INDEX -  ADD/DROP COLUMN -  ADD/DROP FOREIGN KEY -  RENAME COLUMN, TABLE -  CREATE PRIMARY KEY -  ALTER ROW_FORMAT, KEY_BLOCK_SIZE -  ALTER COLUMN NULLABLE, NOT_NULLABLE -  Reorg / rebuild cluster index

  ƒƈƖŮƘƮƨŝƆƬƘŅŧşƧƁƋů -  �õ+»aņŨŸƢƈſƣ%²5Ô

MySQL&5.6:&InnoDB&

Page 14: 2012.10.20 OSC 2012 Hiroshima

MySQL 5.6: Replication Largest EVER set of Enhancements

Page 15: 2012.10.20 OSC 2012 Hiroshima

•  ōŨśŪƊƮƅŝN�f •  ŹƦƈſƣƃƮƖƭƁƩƮƗĿƩƘƧŻƮſƥƬƭƇųƈŹŽƟĿĽŹƦƈğſƣƃƮƖƭƒűƍƧƪź

• ōŨśŪƓƖŵƮƝƬƁřƁŻƮƦƔƧƉŰ •  ƝƨƇƁƩƈƌƭƁƩƮƗ •  RBR²ŝƒűƍƧƪźŽűƂ£W

•  ōŨśŪ�ùf •  ă^ğƩƘƧŻƮſƥƬ

•  ōŨŜÆÉ-ōūŔƋƦƗƨſƣƮƉŰƬź •  ÚƙƮƁƧƘƧŻƮſƥƬĿ ľľÚƙƮƁƧƘƧŻƮſƥƬ�ŜPÚōūŔSQL}ŭæč

•  `-ōūŔơƎƅƧƬźřÄ°

MySQL 5.6: ƩƘƧŻƮſƥƬ

MySQL Masters

Slave 1 Slave 2 Slave 3 Slave 4 Slave 5

Slave 6 Slave 7 Slave 8 Slave 9 Slave 10

Page 16: 2012.10.20 OSC 2012 Hiroshima

5x Higher Replication Performance

•  SysBench, running across 10 x schemas •  Oracle Linux 6.1, Oracle Sun Fire x4150 m2 Server

0& 5& 10&

QPS& 58& 144& 283&

0&

50&

100&

150&

200&

250&

300&

Que

ries&p

er&Secon

d&

Worker&Threads&

MulFGThreaded&Slave&Performance&

Page 17: 2012.10.20 OSC 2012 Hiroshima

źƪƮƒƨƋƦƬžŹſƥƬID • ß{6ŝƩƘƧŻƮſƥƬ±DŘŤR�ŜƋƦƬžŹſƥƬŝ ÿ÷/�ûŇ5Ô – ƋƦƬžŹſƥƬŭ�hŜï$ŘňŪï$LŭƒűƍƧƪźŜæč

• ƖųűƨŶƮƒƮŝŔţŜĿ�Ť��ŝƁƩƮƗŭÕ+ëï • H��iŝƩƘƧŻƮſƥƬŇR�Ŝ

Master

GTID=123456

GTID=123456

GTID=123456 GTID=123456

Page 18: 2012.10.20 OSC 2012 Hiroshima

•  ÕY�c5ÔśƩƘƧŻƮſƥƬ�i •  Õ+-ōūŔƖųűƨŶƮƒƮřƧŷƒƧ

–  mysqlfailover ƤƮƉŰƧƉŰ •  ƁűƈƇŶƮƒƮřÄ°

–  mysqlrpladmin ƤƮƉŰƧƉŰ

•  MySQLŝżů�ÔŘĿHA�Ôŭ�ŗs� – ŽƮƌƓƮƉŰƄƖƋŲųůŇ�àŜ –  HA�iŝm_fŇ:�

HA Utilities Monitoring

Failed Master

Slaves

Promoted Master

ƩƘƧŻƮſƥƬğHAğƤƮƉŰƧƉŰ

Page 19: 2012.10.20 OSC 2012 Hiroshima

•  Check: ƩƘƧŻƮſƥƬà�ŝ½ë •  Repl: �ŎŃƁƩƮƗŠŝƩƘƧŻƮſƥƬďK •  Show: ƩƘƧŻƮſƥƬ�iŝ5â- •  HA: ƁƉƮƅƁŝºâĿ;Ĝŝ¸ářƖųűƨŶƮƒƮ

• PythonƁŹƧƘƋŘPÝ – MySQL WorkbenchŝƘƦźűƬřŎŗs�(LaunchPadŘŤs�) – ƁŹƧƘƋŭŷƁƅƝűƂ5Ô

Check Repl Show HA

MySQLƤƮƉŰƧƉŰŝm_ Workflow for Replication

Page 20: 2012.10.20 OSC 2012 Hiroshima

•  InnoDBŜÉ�ʼnĿÆ/ŜůŹƃƁ •  Memcached APIͳŝůŹƃƁ •  �MŝMemcachedŹƦűůƬƋŭ�² •  SQLFtŭƒűƓƁ

•  NotOnlySQLůŹƃƁ •  ŸƮƭƒƧƣƮx�² •  ßėśŹŴƧťJOINĿFKŜŞ

SQLŭ�² •  PÝ

•  mysqldŜMemcachedŭ ƊƮơƬƭƘƦźűƬřŎŗÏ8

•  ƏűƉŰƗInnoDB APIŭ MemcachedƘƪƋżƨŜƝƈƕƬź

•  ö�ƩűƉƬſ²ŝ ��ƘƪƃƁƭƁƚƮƁ

InnoDBƁƋƩƮƀƭŴƬƀƬ

MySQL Server MemcachedƘƦźűƬ

ůƘƧŻƮſƥƬ SQL

ưMySQLŹƦűůƬƋƱ NoSQL ưMemcached ƘƪƋżƨƱ

mysqld

MySQLƊƮƅƙƮƁğ– InnoDBŸƮƭƒƧƣƮƭůŹƃƁ NotOnlySQL: Memcached API

labs.mysql.com/

Page 21: 2012.10.20 OSC 2012 Hiroshima

MySQL 5.6 RC ƆŲƬƪƮƌ

dev.mysql.com/downloads/mysql [Development Release]ƅƗŭĈl

Page 22: 2012.10.20 OSC 2012 Hiroshima

MySQL&CLUSTER&7.3&&

Page 23: 2012.10.20 OSC 2012 Hiroshima

U��:&wZĘéƏƈƋƫƮŹ&HLR / HSS

îČ, ëè, VLR

ëè, ÿ÷rÑ ŽƮƔƁ, îČ

�ÓgC ŝ��

ƘƧƚű& ƜƁƋƚűîČ

•  Iċŝ�ňýŢƋƦƬžŹſƥƬ •  3ƞƧ¾�¥ŝƊƮƅƙƮƁdà •  ���Đ & ƋƦƬžŹſƥƬ¢J = ƔƀƏƁŝuJ

MySQL Cluster in Action: http://bit.ly/oRI5tF

Page 24: 2012.10.20 OSC 2012 Hiroshima

U��:&ÖÁ�Ä&ſƁƉƟ&•  Ç>¡øÖÁ�× •  ,n¹ÖÁ�Ą²Ä&ſƁƉƟ

•  ƠƬƉƍƬƁæč •  «~vüċÄ° •  �ð®  •  ĝÚ´�Ä°

•  ſƁƉƟà� •  /�ĕQ¨©Ŏ •  N�ś Ďf •  VōśƖƈƋƘƧƬƋ & ąĊś±D Řŝ%²

•  46ŝMySQL ClusterƐƮƌ LinuxŅŧşWindows

MySQL User Conference Session: http://bit.ly/ogeid3

Page 25: 2012.10.20 OSC 2012 Hiroshima

MySQL&Cluster&ůƮŸƉŹƇƢ&

ƊƮƅƭƐƮƌ

ƐƮƌƭźƨƮƘ1

F1

F3

F3

F1

ƐƮƌ

1

ƐƮƌ

2

ƐƮƌƭźƮƨƘ 2

F2

F4

F4

F2

ƐƮƌ

3

ƐƮƌ

4

ůƘƧŻƮſƥƬƭƐƮƌ

ŹƦƁƅÄ° ŹƦƁƅÄ°

REST JPA LDAP

Page 26: 2012.10.20 OSC 2012 Hiroshima

•  1 Billion+ Reads per Minute, 8 node Intel Xeon cluster •  NoSQL C++ API, flexaSynch benchmark •  Multi-Threaded Data Node Extensions

0&

2&

4&

6&

8&

10&

12&

14&

16&

18&

20&

MySQL&Cluster&7.1& MySQL&Cluster&7.2&

Read

s&per&Secon

d&(M

illions)&

Comparing MySQL Cluster Performance 8x Higher Performance per Node

0ª:&¾Đ1,600����&¬°ŽƮƒ86�

Page 27: 2012.10.20 OSC 2012 Hiroshima

•  30 x Intel E5-2600 Intel Servers •  NoSQL C++ API, flexaSynch benchmark •  ACID Transactions, with Synchronous Replication

0&

5&

10&

15&

20&

25&

2& 4& 6& 8& 10& 12& 14& 16& 18& 20& 22& 24& 26& 28& 30&

Mill

ions

of U

PDAT

Es p

er S

econ

d

MySQL Cluster Data Nodes

1.2 Billion UPDATEs per Minute

��:&¾Đ2,000����&¬°ŽƮƒ306�

Page 28: 2012.10.20 OSC 2012 Hiroshima

Ćē@ƩƘƧŻƮſƥƬŝ:�&

Ćē@ ƩƘƧŻƮſƥƬ

&• ƊƮƅƃƬƅƮĐŘ&ŹƦƁƅŭN�ŜßÞ&•  DR&&&ƊƮƅŝXjf&• ƓƈſƗƭƧƄƮƁśŎ&

• ůŹƉŰƗ&/&ůŹƉŰƗ&ƩƘƧŻƮſƥƬŝÆÉ-&• źƪƮƒƨŜƁŻƮƦƗƨ&Ř ĎfŭŤŖŽƮƔƁŝ&Ą²ŇŧũſƬƘƨŜ&

Page 29: 2012.10.20 OSC 2012 Hiroshima

ƝƨƇŽűƋƭŹƦƁƅƧƬź&

•  ƊƮƅƭƐƮƌŭ&ƊƮƅƃƬƅƮĐŘ#'&

–  ŽűƋĐŝ&

9�ƩƘƧŻƮſƥƬř&Õ+ƖųűƨŶƮƒƮ&

–  ƏƈƋƫƮŹƭƓƮƉŰſƥƬŭ!°ŐŪƑƮƋƔƮƋŝy<&

•  ƊŰžƁƅƭƧŷƒƧ&ŶƘſƥƬŝm_&

•  Â8!°�àŝ&

ůŹƉŰƗ/ůŹƉŰƗ�i&

&ƐƮƌƭźƨƮƘ2&

&&ƐƮƌƭźƨƮƘ1&

ƊƮƅƭƐƮƌğ1&

ƊƮƅƭƐƮƌğ3&

ƊƮƅƭƐƮƌğ2&

ƊƮƅƭƐƮƌğ4&

9�&ƩƘƧŻƮſƥƬ&

Page 30: 2012.10.20 OSC 2012 Hiroshima

SQLřNoSQLğŒūœūŝƙƁƋŭq²&

SQL&řğNoSQLŝÌŢ8Ŭő&

•  SQL: ßėśƧƩƮſƥƍƨƭŹŴƧ •  HTTP / memcached: ŸƮƭƒƧƣƮAWebŽƮƔƁ •  Java: ŴƬƅƮƘƦűƂƭůƘƧŻƮſƥƬ •  NDB API: ƧůƨƅűƟƭŽƮƔƁ

�ŀś ÌŢ8Ŭő

ƊƮƅƭƐƮƌ

NDB API

ŹƦűůƬƋ

ƏűƉŰƗ memcached HTTP/REST

JDBC / ODBC PHP / PERL

Python / Ruby

Page 31: 2012.10.20 OSC 2012 Hiroshima

MySQL&Cluster&7.3:&Node.js&NoSQL&API&

•  JavaScriptņŨ&MySQL&Cluster&Ŝ»růŹƃƁ&

–  JavaScript&ŝŶƗƀųŹƋřŎŗ&MySQL&Cluster&ŝƊƮƅŭíŢ�ň&

–  SQL&ŠŝFt�à&

•  node.jsŝơƀƣƮƨřŎŗPÝ&

–  MySQLCluster&APIƦűƗƦƧř&WebůƘƧŻƮſƥƬŭÏ8&

•  ĞfÔƯ#zAŝůƘƧŻƮſƥƬř&ĞfÔƯ#zAŝƊƮƅƙƮƁŭÏ8&

V8 JavaScript Engine

MySQL Cluster Node.js Module

MySQL Cluster Data Nodes

Clients

New!

Page 32: 2012.10.20 OSC 2012 Hiroshima

MySQL&Connectŝô~hXp://goo.gl/78M8g&

MySQL&Tech&Tour&hXp://goo.gl/01FnD�

Page 33: 2012.10.20 OSC 2012 Hiroshima

5.5 5.6 7.2

MySQL Server - GA InnoDB PluginŜŧŪfÔy< ¦9�A(Semi-synchronous)ƩƘƧŻƮſƥƬ

MySQL Server – RC ŶƘƉŰƝűžŝI[śyØť5²fŝ:� NoSQLűƬƅƖųƮƁÿ)

MySQL Cluster - GA JOINfÔŝI[ś:��ƊŰžƁƅƧŷƒƧŝ�ěfŝ:�

7.3 MySQL Cluster - DMR GĉŸƮŽƜƮƋ Node.jp APIŝÿ)ĿĄ²fÔ:�