55
MySQL最新動向と便利ツール MySQL Workbench 日本MySQLユーザ会 やまさき よしあき(@yyamasaki1)

MySQL最新動向と便利ツールMySQL Workbench

Embed Size (px)

DESCRIPTION

OSC広島2013での発表資料です。

Citation preview

Page 1: MySQL最新動向と便利ツールMySQL Workbench

MySQL最新動向と便利ツールMySQL Workbench

日本MySQLユーザ会

やまさき よしあき(@yyamasaki1)

Page 2: MySQL最新動向と便利ツールMySQL Workbench

日本MySQLユーザ会とは

• 日本でのMySQLの普及、ユーザ間のコミュニケーションを図るための会

• 現在の主な活動は ML での意見交換

–時々、コミュニティイベントやオフ会も開催

• MySQL に興味がある方はどなたでも入会可能。会費も無し。退会も自由。

Page 3: MySQL最新動向と便利ツールMySQL Workbench

日本MySQLユーザ会とは

• 略称はMyNA(MySQL Nippon Association)

• ホームページ http://www.mysql.gr.jp/

• 入会申請 http://www.mysql.gr.jp/ml.html

Page 4: MySQL最新動向と便利ツールMySQL Workbench

MySQLとは

• 世界で最も使われているオープンソースのRDBMS(リレーショナル・データベース・マネージメント・システム)

• Facebook、Twitter、eBay、Mobage、Greeなどの大規模なWebサイトやオンラインゲームでの利用実績も豊富

• 1995年に旧MySQL社によって最初のバージョン1.0がリリースされ、その後バージョンアップを重ねている

Page 5: MySQL最新動向と便利ツールMySQL Workbench

MySQLとは

• 2008年にサン・マイクロシステムズがMySQL社を買収し、その後2010年にオラクルがサ

ン・マイクロシステムズを買収したため、現在はオラクルのオープンソース製品となっている

Page 6: MySQL最新動向と便利ツールMySQL Workbench

MySQLの将来心配している方に

• オラクルの買収以降、開発はより活発になっています(次ページ以降参照)

• 今も変わらずGPLライセンスでリリースしています

Page 7: MySQL最新動向と便利ツールMySQL Workbench

オラクルになってから開発はより活発に

• InnoDB(※)は、元々Innobase社によって開発されていたが、Innobase社は2005年にオラクルに買収されていた ⇒オラクルによるサン買収によって、MySQL本体 の開発チームとInnoDBの開発チームが同じ 会社で仕事できるようになった

• 開発チームの人員は、サンを買収した当初よりも約2倍に(2013年9月時点)

※InnoDB:トランザクションに対応したストレージエンジン MySQLユーザに最も利用されているストレージエンジン

Page 8: MySQL最新動向と便利ツールMySQL Workbench

オラクルになってから開発はより活発に

• 続々と、新バージョンをリリース

– MySQL 5.5(2010年)

– MySQL 5.6(2013年)

– MySQL Cluster 7.1(2010年)

– MySQL Cluster 7.2(2012年)

– MySQL Cluster 7.3(2013年)

– MySQL Workbench 5.2(2010年)

– MySQL Workbench 6.0(2013年)

Page 9: MySQL最新動向と便利ツールMySQL Workbench

MySQL Connect 2013開催!!

• Oracle Open World開催に合わせて、 MySQLとしての独立したイベントを開催 (2013年9月21日~9月23日、サンフランシスコで開催)

• 基調講演、 Facebook、Twitter、LinkedIn、PayPalによるパネルディスカッション、など、全部で80以上のセッションを開催

• Oracle製品の中で単独の製品で独立したイベントを開催しているのは、MySQL以外にはJavaのJava Oneだけ

Page 10: MySQL最新動向と便利ツールMySQL Workbench

MySQL Connect 2013開催!!

• セッション資料は、今後こちらで順次公開される予定

Page 11: MySQL最新動向と便利ツールMySQL Workbench

MySQLの最新動向 • MySQL

– 最新のGAは5.6 (2013年2月にリリース)

– DMRとして、5.7をリリース (今までと同じく、GPLライセンスで提供)

– Lab版で、マルチソースレプリケーション、MySQL Fablic、JSON UDF、 Hadoop Applier を提供中

• MySQL Cluster

– 最新のGAは7.3 (2013年6月にリリース)

– 7.3では、外部キーが実装されRDBMSとして完全な状態に

• MySQL Workbench

– 最新のGAは6.0 (2013年8月にリリース)

– インターフェースを刷新し、クエリ結果の縦型表示、外部キーの参照行を削除するDELETE文の自動生成、などの機能を追加

Page 12: MySQL最新動向と便利ツールMySQL Workbench

GA、DMR、Labって何?

• GA(General Available/General Availability) – 製品版

– http://dev.mysql.com/downloads/ からダウンロード可能

• DMR(Development Milestone Releases) – 開発途上版

– http://dev.mysql.com/downloads/ からダウンロード可能 ⇒Development Releases タブを選択

• Lab – DMRよりも先進的/実験的な機能を実装した、実験版

(Laboratory:実験室)

– http://labs.mysql.com/ からダウンロード可能

Page 13: MySQL最新動向と便利ツールMySQL Workbench

MySQL 5.6の場合

Optimizer:

MRR, ICP, File Sort

InnoDB:

Split Kernel Mutex, MT Purge

Replication:

Crash-Safe, Multi-Thread Slave, Checksums

Memcached API

New P_S

Partitioning Improvements

RC Nov 2012

DMR1*

April 2011

DMR2 Oct 2011

Optimizer:

BKA, New EXPLAIN, Traces

InnoDB:

Dump/Restore Buffer Pool

More P_S

DMR3 Dec 2011

Optimizer:

Sub-Queries

InnoDB:

Full Text Index, Read-Only Optimizations

Condition Handling

Fractional Seconds

DMR4 April 2012

Optimizer:

JSON EXPLAIN, Sub-Queries

Replication:

GTIDs

TIMESTAMP & DATESTAMP

More P_S

DMR5 Aug 2012

InnoDB:

TT, Online DDL, Memcached API

Replication:

Binary Log Group Commit

Password Mgmt

More Partitioning

New Server Defaults

More Partitioning

More GTID, TT

Page 14: MySQL最新動向と便利ツールMySQL Workbench

MySQL 5.6 主な強化点

• InnoDB: トランザクション・スループットの向上

• オプティマイザ: パフォーマンス&スケーラビリティ

• パフォーマンス・スキーマ: より詳細な統計情報

• レプリケーション: さらなる可用性とデータの整合性

• 「NotOnlySQL」オプション: さらなる柔軟性

Page 15: MySQL最新動向と便利ツールMySQL Workbench

MySQL 5.6:InnoDB

• レガシーなボトルネックの削減

• スレッドの同時実行性能の向上

• 参照専用トランザクションの実装

• SSDへの最適化

リソースの有効活用による性能と拡張性能向上

• オンラインでのDDL実行

• テーブルスペースの可搬性の向上

• バッファプールのダンプ&リストア

可用性の向上&拡張性の改良

• NoSQLでのInnoDBへのキーバリュー型アクセス

開発の柔軟性の向上

Page 16: MySQL最新動向と便利ツールMySQL Workbench

MySQL 5.6:オプティマイザ

• サブクエリの最適化

• ファイルソートの性能向上

• Index Condition PushdownによるJOIN性能の向上

• Batched Key AccessおよびMulti-Range ReadによるJOIN性能の向上

SQL実行性能の向上&処理時間の短縮

• INSERT, UPDATE, DELETEでのEXPLAIN文の利用

• JSONフォーマットでのEXPLAIN文の出力

• Optimizer Traces

より詳細な状況監視

Page 17: MySQL最新動向と便利ツールMySQL Workbench

MySQL 5.6:RDBMSとNoSQLの両立

InnoDB Storage Engine

MySQL Server Memcached plugin

Application

SQL (MySQL Client)

NoSQL (Memcached Protocol)

mysqld

• InnoDBに素早く、簡単にアクセス – Memcached API経由のアクセス

– 既存のMemcachedクライアントを使用

– SQL変換をバイパス

• NotOnlySQLアクセス – キー・バリュー操作用

– 複雑なクエリやJOIN、FKにはSQLを使用

• 実装 – mysqldにMemcachedをデーモン・プラグインとして統合

– ネイティブInnoDB APIをmemcachedプロトコルにマッピング

– 超低レイテンシ用の共有プロセス・スペース

Page 18: MySQL最新動向と便利ツールMySQL Workbench

MySQL 5.6:RDBMSとNoSQLの両立

0

10000

20000

30000

40000

50000

60000

70000

80000

8 32 128 512

TP

S

Client Connections

MySQL 5.6: NoSQL Benchmarking

Memcached API

SQL

Customized Java-based App Test Harness

Oracle Linux 6

Intel(R) Xeon(R) 2.0 x86_64

MySQL leveraging:

- 8 available CPU threads

- 2 GHz, 16GB RAM

Up to 9x Higher “SET / INSERT” Throughput blogs.oracle.com/mysqlinnodb/entry/new_enhancements_for_innodb_memcached

Page 19: MySQL最新動向と便利ツールMySQL Workbench

MySQL 5.6:レプリケーション

•マルチスレッド スレーブ •バイナリログのグループコミット •行ベース レプリケーションの転送データ量の削減

パフォーマンス

•Global Transaction Identifiers •レプリケーション フェールオーバー & 管理ユーティリティ •スレーブ&バイナリログの耐障害性向上

フェールオーバー & リカバリ

•レプリケーション チェックサム

データの正確性

•遅延レプリケーション •リモートからのバイナリログのバックアップ •ログへのメタデータの追加

開発&管理の簡素化

Page 20: MySQL最新動向と便利ツールMySQL Workbench

MySQL 5.6:パフォーマンススキーマ

• パフォーマンスに関する統計情報を自動収集

• リソース消費の多いクエリの特定、競合の多いインデックスの特定、など、ボトルネックの調査に役立つ

• MySQL 5.5よりも使いやすくなった

Page 21: MySQL最新動向と便利ツールMySQL Workbench

MySQL 5.7 DMR

• 今までと同じくGPLライセンスでリリース

• MySQL 5.6をベースに、さらなる改善、機能 強化を実施

• バグレポートはこちらまで

– http://bugs.mysql.com

Page 22: MySQL最新動向と便利ツールMySQL Workbench

MySQL 5.7 DMR: Sysbenchによるベンチマーク

• Sysbench Point Select

Intel(R) Xeon(R) CPU X7560 x86_64 4 sockets x 8 cores-HT (64 CPU threads) 2.27GHz, 256G RAM Oracle Linux 6.2

95% Faster than MySQL 5.6 172% Faster than MySQL 5.5

0

100000

200000

300000

400000

500000

600000

8 16 32 64 128 256 512 1024

Qu

eri

es

pe

r Se

con

d

Concurrent User Sessions

MySQL-5.7

MySQL-5.6

MySQL-5.5

500,000 QPS

Page 23: MySQL最新動向と便利ツールMySQL Workbench

MySQL 5.7 DMR: Connections / second

• 新規コネクション生成をより高速に

0

5000

10000

15000

20000

25000

30000

35000

40000

With Selects Without Select

Co

nn

ect

ion

s p

er

seco

nd

MySQL 5.7.2

MySQL 5.6.9

• mysql-bench • 25 concurrent client threads • Executing connect/select/disconnect • 100000 iterations each

+32% +64%

Facebook からのフィードバックを受けて実装

Page 24: MySQL最新動向と便利ツールMySQL Workbench

MySQL 5.7 DMR:オプティマイザ

• 実行中のクエリに対してもEXPLAINを取得可能

• JSONフォーマットのEXPLAINを拡張

EXPLAIN [FORMAT=(JSON|TRADITIONAL)] [EXTENDED] FOR CONNECTION <id>;

Page 25: MySQL最新動向と便利ツールMySQL Workbench

MySQL 5.7 DMR:その他

• InnoDB

–オンラインDDLを更に追加

–一時表をInnoDBで作成

– InnoDBの一時表に対するパフォーマンスを改善

• パフォーマンススキーマ

–情報収集項目を更に増加

Page 26: MySQL最新動向と便利ツールMySQL Workbench

Lab版:MySQL Fabric

• シャーディング(データ分割)による拡張性の向上

MySQL Fabric

Connector

Application

Read-slaves

SQL

Master group

Read-slaves

Master group

Page 27: MySQL最新動向と便利ツールMySQL Workbench

Lab版:マルチソースレプリケーション

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

• 複数のマスターのデータを集約

Page 29: MySQL最新動向と便利ツールMySQL Workbench

Lab版:Hadoop Applier

• MySQLからHadoopへのリアルタイムストリーミング

Page 30: MySQL最新動向と便利ツールMySQL Workbench

MySQL Clusterとは?

• MySQLとは開発ツリーの異なる別製品

• 共有ディスクを使わずに、アクティブ-アクティブのクラスタ構成が組める

• 元々はSQLを使わないデータベースだったが、MySQLと統合され SQLも使えるようになった (NoSQL(KVS)とSQLの両方が使えるデータベース)

向いているシステム

• 高可用性が求められるシステム

• 同時多発的に大量のトランザクションが発生するシステム

• 読込み処理だけでなく、書込み処理に対しても拡張性が求められる システム

Page 31: MySQL最新動向と便利ツールMySQL Workbench

MySQL Cluster: Overview

• 自動シャーディング、マルチマスター

• ACID 準拠のトランザクション, OLTP + Real-Time Analytics

読込み/書込み処理

に対する高い拡張性

• シェアードナッシング、単一障害点無し

• 自動修復 + オンラインオペレーション 99.999% の高可用性

• オープンソース + 商用版

• コモディディハードウェア + 充実した管理ツール、監視ツール 低い TCO

• Key/Value + SQL の柔軟性

• SQL + Memcached + JavaScript + Java + JPA + HTTP/REST & C++ SQL + NoSQL

• インメモリデータベース + ディスクデータ

• 非常に低いレイテンシ、短いアクセス時間 リアルタイム

Page 32: MySQL最新動向と便利ツールMySQL Workbench

MySQL Clusterの使用事例

• 携帯電話ネットワーク

HLR / HSS

課金, 認証, VLR

認証, 追跡接続サービス, 課金

位置情報 の更新

プリペイ& ポストペイ課金

• 大量の書き込みトランザクション

• 3ms未満のデータベースレスポンス

• 停止時間 & トランザクション消失 = ビジネスの損失

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

Page 33: MySQL最新動向と便利ツールMySQL Workbench

MySQL Clusterのアーキテクチャ

データ・ノード

ノード・グループ1

F1

F3

F3

F1

ノード

1

ノード

2

ノード・グールプ 2

F2

F4

F4

F2

ノード

3

ノード

4

アプリケーション・ノード

管理ノード 管理ノード

REST JPA

Page 34: MySQL最新動向と便利ツールMySQL Workbench

MySQL Cluster 7.3

外部キー Connection Thread Scalability MySQL 5.6との統合

Auto-Installer NoSQL API : JavaScript for

node.js

Page 35: MySQL最新動向と便利ツールMySQL Workbench

MySQL Cluster 7.3

• 大幅に性能を向上

DBT2 Benchmark Single MySQL Server Single Data Node 128 client connections

8.5x

Page 36: MySQL最新動向と便利ツールMySQL Workbench

MySQL Cluster 7.3

• MySQL 5.6と統合

– MySQL 5.6での性能向上の恩恵を受けられる

• 外部キ―を実装

– RDBMSとして完全な形に

• Auto-Installer

– インストール、設定をより簡単に

• Node.js API

– NoSQLのインターフェースを追加

Page 37: MySQL最新動向と便利ツールMySQL Workbench

MySQL Cluster のお勧め書籍

• ”漢のコンピュータ道”で有名な奥野さんの 書籍です。MySQL Clusterのノウハウが

ぎっしり詰まった1冊です。 (http://gihyo.jp/book/にて、電子書籍版もあります)

Page 38: MySQL最新動向と便利ツールMySQL Workbench

MySQL Workbench 6.0

• MySQLの管理・開発統合環境

• GUIでMySQL環境を触れるツール

• 元々は機能毎にツールが分かれていたが、それらが1つに統合され、更にデータモデリング機能なども追加され、MySQL Workbenchとしてリリースされている

– MySQL Query Browser:GUIでSQL文を実行できるツール

– MySQL Administrator:GUIでのMySQLサーバの管理ツール

– MySQL Migration Toolkit:他データベースからMySQLへの移行を支援するツール

Page 39: MySQL最新動向と便利ツールMySQL Workbench

MySQL Workbench で出来ること

• 管理 – Server起動/停止、システム変数確認、ステータス変数確認、 ログ確認、ユーザ管理、セッション管理、など

• 開発 – SQLエディタ、SQL Snippets(ステートメント再利用)、 ビジュアルExplain、など

• 設計 – E-R図作成、フォワードエンジニアリング、リバースエンジニアリング、 など

Page 40: MySQL最新動向と便利ツールMySQL Workbench

MySQL Workbench で出来ること

• マイグレーション

–他DBからMySQLへの移行を支援できるマイグレーションウィザード

Page 41: MySQL最新動向と便利ツールMySQL Workbench

MySQL Workbench 6.0 のデモ

Page 42: MySQL最新動向と便利ツールMySQL Workbench

起動画面

Page 43: MySQL最新動向と便利ツールMySQL Workbench

管理 • MySQLサーバの稼働状況や各機能の設定を確認

Page 44: MySQL最新動向と便利ツールMySQL Workbench

管理

• SHOW PROCESS LISTの結果を確認

Page 45: MySQL最新動向と便利ツールMySQL Workbench

管理

• ステータス変数やシステム変数を確認

Page 46: MySQL最新動向と便利ツールMySQL Workbench

管理

• ユーザ管理、権限管理

Page 47: MySQL最新動向と便利ツールMySQL Workbench

管理

• データのエクスポート/インポート

Page 48: MySQL最新動向と便利ツールMySQL Workbench

開発

• SQLエディタ

Page 49: MySQL最新動向と便利ツールMySQL Workbench

開発

• ビジュアルExplain(MySQL5.6以降で対応)

Page 50: MySQL最新動向と便利ツールMySQL Workbench

設計

• データモデルの作成

Page 51: MySQL最新動向と便利ツールMySQL Workbench

設計

• ER図作成、フォワード/リバース エンジニアリング

Page 52: MySQL最新動向と便利ツールMySQL Workbench

マイグレーション

• マイグレーションウィザード

(他DBからMySQLへの移行をアシスト)

Page 53: MySQL最新動向と便利ツールMySQL Workbench

今後のイベントの紹介

• 10/19(土)、20(日) OSC東京

–ブース出展とセミナー開催

• 10/25(金) MySQL Casual Talks Vol.5

– http://www.zusaar.com/event/1086003

• 11/7(木) MySQL勉強会 in 大阪(第5回)

– http://atnd.org/events/44157

Page 54: MySQL最新動向と便利ツールMySQL Workbench

今後のイベントの紹介

• 11/8(金)、11/9(土) KOF(関西オープンフォーラム)

– ブース出展とセミナー開催

– セミナー:States of Dolphin - MySQL最新技術情報2013秋 -

https://k-of.jp/2013/session/466

– セミナー:SQL+NoSQL!? それならMySQL Clusterでしょ。

https://k-of.jp/2013/session/467

• 11/16(土) OSC福岡

– ブース出展とセミナー開催

Page 55: MySQL最新動向と便利ツールMySQL Workbench

まとめ

• MySQLの開発は順調に進んでいて、 新バージョンを続々リリースしている

• MySQLを触ってフィードバックをしよう

–ブログ等での情報発信

– コミュニティイベントでの発表

–バグレポート (http://bugs.mysql.com/)

• 中国地方でコミュニティイベントを企画して くれる方、絶賛募集中!!