Successfully reported this slideshow.

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

5,343 views

Published on

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

  • Be the first to comment

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

  1. 1. MySQL最新動向と便利ツール MySQL Workbench 日本MySQLユーザ会 やまさき よしあき(@yyamasaki1)
  2. 2. 日本MySQLユーザ会とは • 日本でのMySQLの普及、ユーザ間のコミュニ ケーションを図るための会 • 現在の主な活動は ML での意見交換 – 時々、コミュニティイベントやオフ会も開催 • MySQL に興味がある方はどなたでも入会可 能。会費も無し。退会も自由。
  3. 3. 日本MySQLユーザ会とは • 略称はMyNA(MySQL Nippon Association) • ホームページ http://www.mysql.gr.jp/ • 入会申請 http://www.mysql.gr.jp/ml.html
  4. 4. MySQLとは • 世界で最も使われているオープンソースの RDBMS(リレーショナル・データベース・マネー ジメント・システム) • Facebook、Twitter、eBay、Mobage、Greeなど の大規模なWebサイトやオンラインゲームで の利用実績も豊富 • 1995年に旧MySQL社によって最初のバージョ ン1.0がリリースされ、その後バージョンアップ を重ねている
  5. 5. MySQLとは • 2008年にサン・マイクロシステムズがMySQL 社を買収し、その後2010年にオラクルがサ ン・マイクロシステムズを買収したため、現在 はオラクルのオープンソース製品となってい る
  6. 6. MySQLの将来心配している方に • オラクルの買収以降、開発はより活発になっ ています(次ページ以降参照) • 今も変わらずGPLライセンスでリリースしてい ます
  7. 7. オラクルになってから開発はより活発に • InnoDB(※)は、元々Innobase社によって開発 されていたが、Innobase社は2005年にオラク ルに買収されていた ⇒オラクルによるサン買収によって、MySQL本体 の開発チームとInnoDBの開発チームが同じ 会社で仕事できるようになった • 開発チームの人員は、サンを買収した当初よ りも約2倍に(2013年9月時点) ※InnoDB:トランザクションに対応したストレージエンジン MySQLユーザに最も利用されているストレージエンジン
  8. 8. オラクルになってから開発はより活発に • 続々と、新バージョンをリリース – 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年)
  9. 9. MySQL Connect 2013開催!! • Oracle Open World開催に合わせて、 MySQLと しての独立したイベントを開催 (2013年9月21日~9月23日、サンフランシスコで開催) • 基調講演、 Facebook、Twitter、LinkedIn、 PayPalによるパネルディスカッション、など、全 部で80以上のセッションを開催 • Oracle製品の中で単独の製品で独立したイベ ントを開催しているのは、MySQL以外にはJava のJava Oneだけ
  10. 10. MySQL Connect 2013開催!! • セッション資料は、今後こちらで順次公開され る予定
  11. 11. 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文の自動生成、などの機能を追加
  12. 12. 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/ からダウンロード可能
  13. 13. 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
  14. 14. MySQL 5.6 主な強化点 • InnoDB: トランザクション・スループットの向上 • オプティマイザ: パフォーマンス&スケーラビリティ • パフォーマンス・スキーマ: より詳細な統計情報 • レプリケーション: さらなる可用性とデータの整合性 • 「NotOnlySQL」オプション: さらなる柔軟性
  15. 15. MySQL 5.6:InnoDB • レガシーなボトルネックの削減 • スレッドの同時実行性能の向上 • 参照専用トランザクションの実装 • SSDへの最適化 リソースの有効活用による性能と拡張性能向上 • オンラインでのDDL実行 • テーブルスペースの可搬性の向上 • バッファプールのダンプ&リストア 可用性の向上&拡張性の改良 • NoSQLでのInnoDBへのキーバリュー型アクセス 開発の柔軟性の向上
  16. 16. MySQL 5.6:オプティマイザ • サブクエリの最適化 • ファイルソートの性能向上 • Index Condition PushdownによるJOIN性能の向上 • Batched Key AccessおよびMulti-Range ReadによるJOIN性能の向上 SQL実行性能の向上&処理時間の短縮 • INSERT, UPDATE, DELETEでのEXPLAIN文の利用 • JSONフォーマットでのEXPLAIN文の出力 • Optimizer Traces より詳細な状況監視
  17. 17. 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プ ロトコルにマッピング – 超低レイテンシ用の共有プロセス・ス ペース
  18. 18. MySQL 5.6:RDBMSとNoSQLの両立 0 10000 20000 30000 40000 50000 60000 70000 80000 8 32 128 512 TPS 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
  19. 19. MySQL 5.6:レプリケーション •マルチスレッド スレーブ •バイナリログのグループコミット •行ベース レプリケーションの転送データ量の削減 パフォーマンス •Global Transaction Identifiers •レプリケーション フェールオーバー & 管理ユーティリティ •スレーブ&バイナリログの耐障害性向上 フェールオーバー & リカバリ •レプリケーション チェックサム データの正確性 •遅延レプリケーション •リモートからのバイナリログのバックアップ •ログへのメタデータの追加 開発&管理の簡素化
  20. 20. MySQL 5.6:パフォーマンススキーマ • パフォーマンスに関する統計情報を自動収集 • リソース消費の多いクエリの特定、競合の多 いインデックスの特定、など、ボトルネックの 調査に役立つ • MySQL 5.5よりも使いやすくなった
  21. 21. MySQL 5.7 DMR • 今までと同じくGPLライセンスでリリース • MySQL 5.6をベースに、さらなる改善、機能 強化を実施 • バグレポートはこちらまで – http://bugs.mysql.com
  22. 22. 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 QueriesperSecond Concurrent User Sessions MySQL-5.7 MySQL-5.6 MySQL-5.5 500,000 QPS
  23. 23. MySQL 5.7 DMR: Connections / second • 新規コネクション生成をより高速に 0 5000 10000 15000 20000 25000 30000 35000 40000 With Selects Without Select Connectionspersecond MySQL 5.7.2 MySQL 5.6.9 • mysql-bench • 25 concurrent client threads • Executing connect/select/disconnect • 100000 iterations each +32% +64% Facebook からのフィードバックを受けて実装
  24. 24. MySQL 5.7 DMR:オプティマイザ • 実行中のクエリに対してもEXPLAINを取得可能 • JSONフォーマットのEXPLAINを拡張 EXPLAIN [FORMAT=(JSON|TRADITIONAL)] [EXTENDED] FOR CONNECTION <id>;
  25. 25. MySQL 5.7 DMR:その他 • InnoDB – オンラインDDLを更に追加 – 一時表をInnoDBで作成 – InnoDBの一時表に対するパフォーマンスを改善 • パフォーマンススキーマ – 情報収集項目を更に増加
  26. 26. Lab版:MySQL Fabric • シャーディング(データ分割)による拡張性の 向上 MySQL Fabric Connector Application Read-slaves SQL Master group Read-slaves Master group
  27. 27. 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 • 複数のマスターのデータを集約
  28. 28. Lab版:MySQL JSON UDFs • MySQLでJSONを扱うためのUDF(ユーザ定義 関数) • 以下の資料に使い方の例が掲載されている – ドキュメントデータベースとして MySQLを使う!? ~MySQL JSON UDF~
  29. 29. Lab版:Hadoop Applier • MySQLからHadoopへのリアルタイムストリー ミング
  30. 30. MySQL Clusterとは? • MySQLとは開発ツリーの異なる別製品 • 共有ディスクを使わずに、アクティブ-アクティブのクラスタ構成が組める • 元々はSQLを使わないデータベースだったが、MySQLと統合され SQLも使えるようになった (NoSQL(KVS)とSQLの両方が使えるデータベース) 向いているシステム • 高可用性が求められるシステム • 同時多発的に大量のトランザクションが発生するシステム • 読込み処理だけでなく、書込み処理に対しても拡張性が求められる システム
  31. 31. MySQL Cluster: Overview • 自動シャーディング、マルチマスター • ACID 準拠のトランザクション, OLTP + Real-Time Analytics 読込み/書込み処理 に対する高い拡張性 • シェアードナッシング、単一障害点無し • 自動修復 + オンラインオペレーション 99.999% の高可用性 • オープンソース + 商用版 • コモディディハードウェア + 充実した管理ツール、監視ツール 低い TCO • Key/Value + SQL の柔軟性 • SQL + Memcached + JavaScript + Java + JPA + HTTP/REST & C++ SQL + NoSQL • インメモリデータベース + ディスクデータ • 非常に低いレイテンシ、短いアクセス時間 リアルタイム
  32. 32. MySQL Clusterの使用事例 • 携帯電話ネットワーク HLR / HSS 課金, 認証, VLR 認証, 追跡接続 サービス, 課金 位置情報 の更新 プリペイ& ポストペイ課金 • 大量の書き込みトランザクション • 3ms未満のデータベースレスポンス • 停止時間 & トランザクション消失 = ビジネスの損失 MySQL Cluster in Action: http://bit.ly/oRI5tF
  33. 33. MySQL Clusterのアーキテクチャ データ・ノード ノード・グループ1 F1 F3 F3 F1 ノード1ノード2 ノード・グールプ 2 F2 F4 F4 F2 ノード3ノード4 アプリケーション・ノード 管理ノード管理ノード RESTJPA
  34. 34. MySQL Cluster 7.3  外部キー  Connection Thread Scalability  MySQL 5.6との統合  Auto-Installer  NoSQL API : JavaScript for node.js
  35. 35. MySQL Cluster 7.3 • 大幅に性能を向上 DBT2 Benchmark Single MySQL Server Single Data Node 128 client connections 8.5x
  36. 36. MySQL Cluster 7.3 • MySQL 5.6と統合 – MySQL 5.6での性能向上の恩恵を受けられる • 外部キ―を実装 – RDBMSとして完全な形に • Auto-Installer – インストール、設定をより簡単に • Node.js API – NoSQLのインターフェースを追加
  37. 37. MySQL Cluster のお勧め書籍 • ”漢のコンピュータ道”で有名な奥野さんの 書籍です。MySQL Clusterのノウハウが ぎっしり詰まった1冊です。 (http://gihyo.jp/book/にて、電子書籍版もあります)
  38. 38. MySQL Workbench 6.0 • MySQLの管理・開発統合環境 • GUIでMySQL環境を触れるツール • 元々は機能毎にツールが分かれていたが、それらが 1つに統合され、更にデータモデリング機能なども追 加され、MySQL Workbenchとしてリリースされている – MySQL Query Browser:GUIでSQL文を実行できるツール – MySQL Administrator:GUIでのMySQLサーバの管理ツール – MySQL Migration Toolkit:他データベースからMySQLへの 移行を支援するツール
  39. 39. MySQL Workbench で出来ること • 管理 – Server起動/停止、システム変数確認、ステータス変 数確認、 ログ確認、ユーザ管理、セッション管理、など • 開発 – SQLエディタ、SQL Snippets(ステートメント再利用)、 ビジュアルExplain、など • 設計 – E-R図作成、フォワードエンジニアリング、リバースエ ンジニアリング、 など
  40. 40. MySQL Workbench で出来ること • マイグレーション – 他DBからMySQLへの移行を支援できるマイグ レーションウィザード
  41. 41. MySQL Workbench 6.0 のデモ
  42. 42. 起動画面
  43. 43. 管理 • MySQLサーバの稼働状況や各機能の設定を確認
  44. 44. 管理 • SHOW PROCESS LISTの結果を確認
  45. 45. 管理 • ステータス変数やシステム変数を確認
  46. 46. 管理 • ユーザ管理、権限管理
  47. 47. 管理 • データのエクスポート/インポート
  48. 48. 開発 • SQLエディタ
  49. 49. 開発 • ビジュアルExplain(MySQL5.6以降で対応)
  50. 50. 設計 • データモデルの作成
  51. 51. 設計 • ER図作成、フォワード/リバース エンジニアリング
  52. 52. マイグレーション • マイグレーションウィザード (他DBからMySQLへの移行をアシスト)
  53. 53. 今後のイベントの紹介 • 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
  54. 54. 今後のイベントの紹介 • 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福岡 – ブース出展とセミナー開催
  55. 55. まとめ • MySQLの開発は順調に進んでいて、 新バージョンを続々リリースしている • MySQLを触ってフィードバックをしよう – ブログ等での情報発信 – コミュニティイベントでの発表 – バグレポート (http://bugs.mysql.com/) • 中国地方でコミュニティイベントを企画して くれる方、絶賛募集中!!

×