オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 +...

34
<Insert Picture Here> オラクルにおけるMySQL戦略と最新版 MySQL 5.5 日本オラクル MySQLグローバルビジネスユニット 梶山 隆輔, MySQL Principal Sales Consultant, Asia Pacific & Japan

Transcript of オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 +...

Page 1: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

<Insert Picture Here>

オラクルにおけるMySQL戦略と最新版 MySQL 5.5

日本オラクル MySQLグローバルビジネスユニット梶山 隆輔, MySQL Principal Sales Consultant, Asia Pacific & Japan

Page 2: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

2

以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。

OracleとMySQLは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。

Copyright© 2011, Oracle. All rights reserved.

Page 3: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

The world's most popular open source database世界で最も有名なオープンソース データベース

Page 4: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

MySQL 60.5% PostgreSQL 51.9%

出典:「第3回オープンソースソフトウエア活用ビジネス実態調査(2009年度調査)」独立行政法人 情報処理推進機構

PostgreSQL

MySQL

PostgreSQL

Oracle

SQL Server

IBM DB2

MySQL出典:「ITmediaリサーチインタラクティブ

第6回調査:DBMS」 ITmediaエンタープライズ、ITR

Page 5: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

Who is Using MySQL – The Top 20 Websites

1. Google2. Facebook3. Youtube4. Yahoo5. Windows Live6. Wikipedia7. Baidu8. Blogger9. MSN10. QQ

11. Twitter12. Yahoo JP13. Google IN14. Taobao15. Google DE16. Google HK17. Wordpress18. Amazon.com19. Google UK20. Sina

...and many more: Flickr, Second Life, Craigslist, Slashdot, LiveJournal,Del.icio.us, Pricegrabber.com, Weather.com etc.

Page 6: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

Alexa - Top Site in Japan (Dec. 2010)1. Yahoo!Japan2. Google JP3. FC24. YouTube5. 楽天市場6. Amebaブログ7. Google8. ライブドア9. Wikipedia10.Amazon JP

11. goo12. mixi13. ニコニコ動画14. Twitter15. MSN16. Ameba17. 2ちゃんねる18. はてな19. Facebook20. @nifty

...ほかにも、モバゲー、GREE、ハンゲーム、食べログ、DMM.com、 JWord、dwango、pixiv、オールアバウト、クックパッド、SONY Life-Xなど

Page 7: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

コミュニティ版と商用版

→ データベース機能はコミュニティ版にも「全部入り」

プラガブル ストレージエンジン→ テーブル毎に機能変更可能なMySQL"だけ"の機能

オープンソース&企業としての開発と管理

→ 全てを知るエンジニアによる責任を持ったサポート

Page 8: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

MySQL Strategy

Page 9: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

Investment in MySQLRapid Innovation

• Make MySQL a Better MySQL• #1 Open Source Database for Web Applications• Most Complete LAMP Stack• Telecom & Embedded

• Develop, Promote and Support MySQL• Improve engineering, consulting and support• Leverage 24x7, World-Class Oracle Support

• MySQL Community Edition• Source and binary releases• GPL license

Page 10: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

Oracle + MySQL Customers

• Product Integration• Oracle GoldenGate (Complete!)• Oracle Enterprise Linux + Oracle VM (CY 2011)• Oracle Secure Backup (CY 2011)• Oracle Audit Vault (CY 2011)• Oracle Enterprise Manager (CY 2011)

• Support• Leverage 24x7, World-Class Oracle Support• MyOracle Support

Page 11: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

Multiple Platforms Multiple Languages

C C++ C#

MySQL is Everywhere

Page 12: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

MySQL最新情報

Page 13: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

MySQL 5.5

InnoDBがデフォルトのストレージエンジンに• ACIDトランザクション、外部キー、クラッシュリカバリ• 性能/CPUスケーラビリティの向上、データ圧縮

高可用性の向上• 準同期型(Semi-synchronous)レプリケーション• レプリケーション・ハートビート

ユーザビリティの向上• SIGNAL/RESIGNAL• パーティショニングオプション追加• PERFORMANCE_SCHEMA

4バイトUTF-8のサポート

GA

Page 14: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

MySQL 5.5 - 性能の向上

• InnoDBの性能改善点• Multiple Buffer Pool Instances• Multiple Rollback Segments• Extended Change Buffering

(with delete buffering, purge buffering)• Improved Purge Scheduling• Improved Log Sys mutex• Separate Flush List mutex

• MySQLサーバの性能改善点• Better Metadata Locking within Transactions• Split LOCK_open mutex• Eliminated LOCK_alarm mutex as bottleneck• Eliminated LOCK_thread_count as bottleneck• Improved Performance/Scale on Win32, 64

• クラッシュリカバリの性能が10倍以上向上

Page 15: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

Intel Xeon X7460 x86_64 4 CPU x 6 Cores/CPU 2.66 GHz, 32GB RAM Fedora 10

MySQL 5.1.40(InnoDB built-in)

MySQL 5.1.40 (InnoDB Plug-in)

MySQL 5.5.4 (New InnoDB)

MySQL 5.5 Sysbench ベンチマーク

Page 16: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

MySQL 5.1.40(InnoDB built-in)

MySQL 5.1.40 (InnoDB Plug-in)

MySQL 5.5.4 (New InnoDB)

Intel Xeon X7460 x86_64 4 CPU x 6 Cores/CPU 2.66 GHz, 32GB RAM Fedora 10

MySQL 5.5 Sysbench ベンチマーク

Page 17: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

MySQL 5.5 Scales on multi core SysBench Read Write

MySQL 5.1

MySQL 5.5.3

MySQL 5.5.4

AMD Opteron 7160 (Magny-Cours) @2100 MHz 64 GB memory 2 x Intel X25E SSD drives OS is Oracle Enterprise Linux with the Enterprise Kernel 4 sockets with a total of 48 cores.

Tran

sact

ions

/Sec

ond

Page 18: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

Improved Recovery Performance

Crash Recovery

0

50

100

150

200

250

Total Scanning Log Applying

Min

utes

plugin 1.0.6InnoDB 1.1

5.1 5.1 5.1

5.5 5.5 5.5

Intel Xeon X7460 x86_64 4 CPU x 6 Cores/CPU 2.66 GHz, 32GB RAM Fedora 10

50 warehousesDatabase=9800MBInnodb_log_file_size=2x1950MBBuffer_pool-12GBStarted tested, killed server@5 mins

> 10x recovery performance gainfor MySQL 5.5 over 5.1

Page 19: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

MySQL on WindowsThe Right Choice

WindowsはMySQLにとって重要なプラットフォーム• MySQL利用アプリの開発環境としての利用が最多• Making MySQL better on Windows

パフォーマンス• Windows上での性能改善• MySQL 5.5 Benchmarks

低コスト• より安価なソリューション• 管理の容易さ

より便利な利用方法• MySQL Workbench• New Connector/NET 6.3

クロスプラットフォーム• 20以上のプラットフォーム• 特定OSへのロックイン無し

Page 20: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

MySQL 5.5 SysBench BenchmarksWindows

MySQL 5.1.50(InnoDB built-in)

MySQL 5.1.50 (InnoDB Plug-in)

MySQL 5.5.6 (New InnoDB)

Intel x86_644 CPU x 2 Cores/CPU3.166 GHz, 8GB RAMWindows Server 2008

538% performance gainfor MySQL 5.5 over 5.1.50; at scale

Page 21: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

MySQL 5.5 SysBench BenchmarksWindows

MySQL 5.1.50(InnoDB built-in)

MySQL 5.1.50 (InnoDB Plug-in)

MySQL 5.5.6 (New InnoDB)

Intel x86_644 CPU x 2 Cores/CPU3.166 GHz, 8GB RAMWindows Server 2008

1561% performance gainfor MySQL 5.5 over 5.1.50; at scale

Page 22: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

MySQL Server 5.1 + InnoDB Plugin

• 現在のMySQL 5.1に新ストレージエンジンInnoDB Pluginを同梱 (5.1.38から)※デフォルトは従来版のInnoDB

• InnoDB Pluginの新機能:• スケーラビリティ / 性能改善

Google提供のパッチによる改善• テーブルデータ圧縮• インデックス作成高速化• パフォーマンス関連メタデータ追加

• プラグイン部分は2010年4月にGA

Page 23: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

非同期レプリケーション

Application

Master

Connection Thread

Data Binlog

Slave

DataRelaylog

Commit

ChangingData

ChangingBinlog

Replication

Response

ChangingData

Page 24: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

Copyright Oracle Corporation 2010 24

MySQL 5.5のレプリケーション改善点

1. 準同期(Semisynchronous)レプリケーションスレーブに変更点を転送してからアプリケーションに応答を返すため、信頼性が向上

2. スレーブでのfsync改良&リレーログの自動復旧fsyncsを改良しスレーブの障害時のログ破損を回避。破損した場合にも自動普及

3. レプリケーション ハードビート障害発生検知のメカニズムの精度を向上

4. サーバ毎のレプリケーション フィルタリング特定のサーバIDを持つマスターのイベントを無視

Page 25: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

Copyright Oracle Corporation 2010 25

MySQL 5.5のレプリケーション改善点

5. スレーブでのデータ型変換の自動化(RBR)マスターとスレーブ間でデータ型が異なる場合に自動的に型を変換

6. ログを個別にフラッシュ'FLUSH LOGS'実行時にログを選択してフラッシュ可能に

7. トランザクション非対応に関係なく安全にログに記録InnoDBとMyISAMのテーブルを同一のトランザクション内で更新した場合、コミット後に全変更点をバイナリログに記録

Page 26: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

準同期レプリケーション

Application

Master

Connection Thread

Data Binlog

Slave

DataRelaylog

Commit

ChangingData

ChangingBinlog

Replication

ResponseChanging

Data

Response

Page 27: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

UTF-8の符号体系

byte 文字種 5.1 5.51 ASCII ○ ○

2 ラテン、ギリシャ、アラビア等 ○ ○

3 CJK(BMP)、インド系諸文字等 ○ ○

4 古代文字、3に含まれない漢字 × ○New!!

第3・第4水準漢字の一部

Page 28: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

28

4バイトUTF-8対応

• MySQL 5.1のUTF-8> 基本多言語面(BMP)のみをサポート> 1文字あたり最大3バイトまで> 文字コード名はutf8> 4バイトに割り当てられた文字を使いたい場合には、binary文字コードで代用。(ソート順が・・・)

• MySQL 5.5のUTF-8> 追加面をサポート。

Unicodeで定義されている漢字をすべて利用可能に!!– utf8: 最大3バイト、従来と互換性あり– utf8mb3: utf8へのエイリアス– utf8mb4: 4バイト対応

Page 29: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

日付カラムの値を直接書けるようになった!~ BEFORE ~

create table t1 ( id int unsigned not null auto_increment, mydate date not null, primary key(id,mydate)) partition by range (to_days(mydate)) ( partition p1 values less than (to_days('2000-04-01')), partition p2 values less than (to_days('2001-08-01')), partition p3 values less than (to_days('2004-11-01')), partition p4 values less than (to_days('2008-01-01')), partition p5 values less than (to_days('2010-03-01')), partition p6 values less than (to_days('2011-04-01')), partition p7 values less than (maxvalue));

Page 30: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

日付カラムの値を直接書けるようになった!~ AFTER ~

create table t2 ( id int unsigned not null auto_increment, mydate date not null, primary key(id,mydate)) partition by range columns (mydate) ( partition p1 values less than ('2000-04-01'), partition p2 values less than ('2001-08-01'), partition p3 values less than ('2004-11-01'), partition p4 values less than ('2008-01-01'), partition p5 values less than ('2010-03-01'), partition p6 values less than ('2011-04-01'), partition p7 values less than (maxvalue));

Page 31: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

FROM_DAYS()で日付を表示→面倒!

ちなみに従来の仕様だと・・・

CREATE TABLE `t1` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `mydate` date NOT NULL, PRIMARY KEY (`id`,`mydate`)) ENGINE=InnoDB DEFAULT CHARSET=utf8/*!50100 PARTITION BY RANGE (to_days(mydate))(PARTITION p1 VALUES LESS THAN (730576) ENGINE = InnoDB, PARTITION p2 VALUES LESS THAN (731063) ENGINE = InnoDB, PARTITION p3 VALUES LESS THAN (732251) ENGINE = InnoDB, PARTITION p4 VALUES LESS THAN (733407) ENGINE = InnoDB, PARTITION p5 VALUES LESS THAN (734197) ENGINE = InnoDB, PARTITION p6 VALUES LESS THAN (734593) ENGINE = InnoDB, PARTITION p7 VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */

Page 32: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

複数のカラムの値を組み合わせ!

create table t3 ( id int unsigned not null auto_increment, myyear smallint not null, mymonth tinyint unsigned not null, primary key(id,myyear,mymonth)) partition by range columns (myyear,mymonth) ( partition p1 values less than (2000, 4), partition p2 values less than (2001, 8), partition p3 values less than (2004, 11), partition p4 values less than (2008, 2), partition p5 values less than (2010, 3), partition p6 values less than (2011, 4), partition p7 values less than (maxvalue, maxvalue));

Page 33: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

5.5MySQL Server - GA• InnoDBがデフォルトストレージエンジン• 大幅な性能&スケーラビリティの向上• 準同期型(Semi-synchronous)レプリケーション

• 4バイトUTF-8のサポート

New MySQL Enterprise Edition運用管理に必要な機能とサポートを提供するパッケージ

• 全エディションで24時間365日&長期サポート提供• MySQL Enterprise Backup等の新機能を追加

Page 34: オラクルにおけるMySQL戦略と最新版 MySQL 5 · 2011. 2. 25. · MySQL Server 5.1 + InnoDB Plugin •現在のMySQL 5.1に新ストレージエンジン InnoDB Pluginを同梱

Copyright© 2010, Oracle. All rights reserved. 34