Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

6,115 views

Published on

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

  • Login to see the comments

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/) • 中国地方でコミュニティイベントを企画して くれる方、絶賛募集中!!

×