States of Dolphin - MySQL最新技術情報2013秋 -
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

States of Dolphin - MySQL最新技術情報2013秋 -

  • 2,396 views
Uploaded on

KOF2013での発表資料です。 ...

KOF2013での発表資料です。

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,396
On Slideshare
2,016
From Embeds
380
Number of Embeds
2

Actions

Shares
Downloads
9
Comments
0
Likes
2

Embeds 380

https://k-of.jp 379
https://twitter.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. States of Dolphin - MySQL最新技術情報2013秋 日本MySQLユーザ会 やまさき よしあき(@yyamasaki1)
  • 2. 日本MySQLユーザ会とは • 日本でのMySQLの普及、ユーザ間のコミュニ ケーションを図るための会 • 現在の主な活動は ML での意見交換 – 時々、コミュニティイベントやオフ会も開催 • MySQL に興味がある方はどなたでも入会可 能。会費も無し。退会も自由。
  • 3. 日本MySQLユーザ会とは • 略称はMyNA(MySQL Nippon Association) • ホームページ http://www.mysql.gr.jp/ • 入会申請 http://www.mysql.gr.jp/ml.html
  • 4. MySQL Connect 2013開催!! • Oracle Open World開催に合わせて、 MySQLと しての独立したイベントを開催 (2013年9月21日~9月23日、サンフランシスコで開催) • 基調講演、 Facebook、Twitter、LinkedIn、 PayPalによるパネルディスカッション、など、全 部で80以上のセッションを開催 • Oracle製品の中で単独の製品で独立したイベ ントを開催しているのは、MySQL以外にはJava のJava Oneだけ
  • 5. MySQL Connect 2013開催!! • セッション資料は、今後こちらで順次公開され る予定 • 本日は、基調講演の内容+α をこのセッション で紹介します
  • 6. 以下の事項は、オラクル社の一般的な製品の方向性に関する概要を説明する ものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも 組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供 することをコミットメント(確約)するものではないため、購買決定を行う際の判 断材料になさらないで下さい。オラクル製品に関して記載されている機能の開 発、リリースおよび時期については、オラクル社の裁量により決定されます。 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国におけ る登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
  • 7. MySQLのイノベーション MySQL Cluster 7.3 MySQL Migration Wizard MySQL Workbench 6.0 MySQL 5.6 MySQL 5.5 MySQL Cluster Manager Windows installer & Tools MySQL MySQL Enterprise Monitor 2.3 Applier for Hadoop MySQL Enterprise Backup Security MySQL Utilities MySQL Workbench 5.2 Scalability MySQL Cluster 7.2 MySQL Enterprise HA MySQL Cluster 7.1 Oracle Certifications Audit
  • 8. イノベーションの推進と「品質」向上 • • • • • 191 Worklogs for MySQL 5.6 1991 Bugs Fixed in 5.6 3763 Bugs Fixed in Total Since MySQL 5.5 GA 911 New MTR Tests in MySQL 5.6 Tripled QA Team - 400 Man/Year Database QA Experience
  • 9. MySQL 5.6: 今までで最高のリリース “MySQL 5.6 is probably the version of MySQL with the biggest bundle of new features.” Giuseppe Maxia “MySQL 5.6 is an impressive release with features that make it much easier to scale MySQL and take advantage of modern hardware.” Mark Callaghan “I am very excited and thrilled to use the latest release of MySQL 5.6 in production. This is probably the most notable and innovative release from many years, if not ever. Oracle developer teams did great work for MySQL 5.6, so we have to give Oracle credit for that.“ Marco Tusa “MySQL 5.6 is the largest MySQL code size increase in a MySQL version ever. The last time we saw anything like this was with the merging of MySQL Cluster in 4.1. At the very least, Oracle is paying people to write lines of code to extent that nobody has before.” Stewart Smith “MySQL vs MariaDB performance. The obvious take away is as expected, upgrade any 5.5 installations to 5.6.” Brian Aker
  • 10. The Open Road to MySQL 5.6 Predictable Releases for the MySQL Community, Allowing Feedback DMR1* DMR2 DMR3 DMR4 DMR5 RC April 2011 Oct 2011 Dec 2011 April 2012 Aug 2012 Nov 2012 Optimizer: Optimizer: Optimizer: Optimizer: InnoDB: MRR, ICP, File Sort BKA, New EXPLAIN, Traces Sub-Queries JSON EXPLAIN, SubQueries TT, Online DDL, Memcached API Replication: Replication: InnoDB: Split Kernel Mutex, MT Purge InnoDB: Replication: Dump/Restore Buffer Pool Crash-Safe, Multi-Thread Slave, Checksums Memcached API More P_S InnoDB: Full Text Index, ReadOnly Optimizations GTIDs Binary Log Group Commit More Partitioning Condition Handling TIMESTAMP & DATESTAMP Password Mgmt More GTID, TT Fractional Seconds More P_S More Partitioning New P_S Partitioning Improvements New Server Defaults
  • 11. Complete Solutions On Premise and in the Cloud • Oracle never settles for second best at any level of the stack • “Complete” means we meet most customer requirements at every level That’s why MySQL matters to Oracle and Oracle customers
  • 12. MySQL製品アップデート
  • 13. MySQL 5.6 GA • • • • • New! オプティマイザ: パフォーマンス&スケーラビリティ パフォーマンス・スキーマ: より詳細な統計情報 InnoDB: トランザクション・スループットの向上 レプリケーション: さらなる可用性とデータの整合性 「NotOnlySQL」オプション: さらなる柔軟性 • ダウンロードはこちらから! dev.mysql.com/downloads/mysql/
  • 14. MySQL 5.6: Scalability  最新のOSやハードウェアのリソースを有効活用  データ量やユーザ数の増加に追随する拡張性
  • 15. MySQL 5.6 SysBench Benchmarks MySQL 5.6 MySQL 5.5 Up to 234% Performance Gain
  • 16. MySQL 5.6: 急速に広まる採用 新機能も高い品質 & 圧倒的に向上した性能 • MySQLコミュニティから強く求められていた機能群 • 高い品質、単に機能数を増やすだけでは無い • 圧倒的な性能向上 – InnoDB、オプティマイザ、並列実行性能、ロック、IO、接 続など • 開発者向け機能 – クエリ、パーティショニング、 NoSQL、実行計画など • より簡単な管理とコスト削減 – 高可用性構成/レプリケーション – 管理がシンプルに – 稼働状況の監視を改良 (Performance Schema)
  • 17. MySQL Database 5.7 DMRs 最新機能
  • 18. DMRs: Development Milestone Releases • リリース候補版の品質になった機能のみを含む • 年に2-4回リリース • コミュニティでのテストや使用、フィードバックの ため • 機能拡張の加速 • 品質の改善
  • 19. MySQL 5.7.2 DMR New! MySQL 5.6をベースに各種機能を改良 • InnoDB より高いトランザクション処理性能と可 用性 • レプリケーション より高い拡張性と可用性 • Performance Schema より詳細な性能統計情報 • オプティマイザ EXPLAIN可視化の改良 Available Now! Get it here: dev.mysql.com/downloads/mysql/
  • 20. MySQL 5.7.2 Sysbench Benchmarks Sysbench Point Select 500,000 QPS 600000 Queries per Second 500000 400000 MySQL-5.7 300000 MySQL-5.6 200000 MySQL-5.5 100000 0 8 16 32 64 128 256 512 Concurrent User Sessions 95% Faster than MySQL 5.6 172% Faster than MySQL 5.5 1024 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
  • 21. MySQL 5.7.2 Sysbench Benchmarks OLTP Read Only Transactions per Second 25000 20000 15000 MySQL-5.7 MySQL-5.6 10000 MySQL-5.5 5000 0 8 16 32 64 128 256 512 Concurrent User Sessions 17% Faster than MySQL 5.6 134% Faster than MySQL 5.5 1024 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 sb_OLTP_RO_1M_8tab-ps Max-TPS
  • 22. MySQL 5.7.2: Connections / second 新規接続の処理の高速化 40000 Connections per second 35000 MySQL 5.7.2 30000 25000 20000 15000 MySQL 5.6.9 +32% +64% 10000 5000 0 With Selects Without Select • mysql-bench • 25 concurrent client threads • Executing connect/select/disconnect • 100000 iterations each Facebookからの要望をベースに開発 THDの初期化処理とネットワークの初期化処理をワーカースレッドに分離
  • 23. MySQL 5.7.2: InnoDB Temporary Tables 性能の向上 2-4倍 高速化 INSERT/DELETE/ UPDATE  REDOログの書き込み、ロックおよびチェン ジバッファの利用を削減 4X 2X 2500 Total Time in Seconds 11倍 高速化 CREATE/DROP  テーブルの作成や削除処理中のIOを 削減 MySQL 5.7 versus 5.6 2 - 11 X Improvement 2000 1500 11X 2X 5.6.13 5.7.2 1000 500 0 create/drop insert delete update Total time to complete in seconds * sql-bench, modified to use temp-tables * Seed size of 10K for Create/Drop * Seed size of 5M for Insert/Delete/Update
  • 24. オプティマイザ
  • 25. MySQL 5.7.2: オプティマイザ 稼働中のクエリに対するEXPLAIN • 課題 - あるセッションのクエリの処理に長い時間が かかる • 新しいオプション – 他のセッションに対して EXPLAIN FOR CONNECTION EXPLAIN [FORMAT=(JSON|TRADITIONAL)] [EXTENDED] FOR CONNECTION <id>; – 遅延の根本原因を発見できる – クエリの最適化につなげられる • コネクションの<id>は SHOW PROCESSLIST で確認
  • 26. MySQL 5.7.2: Optimizer JSON EXPLAIN の拡張
  • 27. Performance Schema
  • 28. MySQL 5.7.2 Performance Schema メモリ利用状況 • メモリに関する利用統計情報 – 200件以上のメモリ関連Instruments(統計項目) • 利用統計情報をグルーピング – メモリの利用タイプ (キャッシュ、内部バッファなど) – スレッド/アカウント/ユーザ/ホストの間接的なメモリ利用 • Attributes(属性情報)の種類 – 利用量 (バイト単位)、処理回数、最大値/最小値
  • 29. MySQL 5.7.2 Performance Schema 統計情報の例 SELECT * FROM setup_instruments; • クエリの最適化やクエリ実行のメインのバッファに必 要な領域 memory/sql/thd::main_mem_root • プリペアードステートメントに必要な領域 memory/sql/Prepared_statement::main_mem_roo t • ソートのバッファ領域 memory/sql/Filesort_buffer::sort_keys • JOINバッファ領域 memory/sql/JOIN_CACHE
  • 30. MySQL 5.7.2 Performance Schema ストアドプログラムの稼働統計 • SQL文の稼働統計を拡張 – 5.6を拡張しストアドプログラムをカバー、必要なコマ ンドとSQLを追加 • 新しいInstruments – statement/sp/cclose, cfetch, copen – statement/scheduler/event • 新しいオブジェクトタイプ – EVENT, FUNCTION, PROCEDURE, TRIGGER
  • 31. MySQL 5.7.2 Performance Schema ストアドプログラムの稼働統計 新しいサマリーテーブル events_statements_summary_by_program • OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME – ストアドプログラムに対するプライマリキー • COUNT_STAR, SUM/MIN/AVG/MAX TIMER_WAIT – 処理全体の統計:実行回数と実行時間 • COUNT_STATEMENTS, SUM/MIN/AVG/MAX STATEMENTS – ストアドプログラム内で実行されたSQL文の統計 • SUM_LOCK_TIME, ..., SUM_NO_GOOD_INDEX_USED – 全てのストアドプログラムの統計の合算
  • 32. InnoDB
  • 33. MySQL 5.7.2: InnoDB Better Performance, Scalability  Sysbench READ ONLY の性能が 50-100% 向上(8テーブル) • Sysbench POINT SELECTにて秒間 約500,000トランザクション • Sysbench OLTP_ROにて秒間 20,000トランザクション超  5.7では明示的に START TRANSACTION READ ONLY を 実行する必要無し
  • 34. MySQL 5.7.2: InnoDB 一時表の性能向上 • 一時表のための表領域を分離 – 表領域 ibtmp1, 起動時に再作成 • 一時表の CREATE/DROP 性能を向上 – DDLによる変更を最小限にしIOを抑制 • DMLの処理を一時表に最適化 – REDOログに書き込まない、チェンジバッファを利用し ない、ロックしない • InnoDB の一時表のUNDOログは一時表の表領 域に – 一時表の表領域のUNDOログのみ利用、REDOログに は一切書き込まない
  • 35. MySQL 5.7.2: InnoDB オンラインALTER TABLE の拡張 • オンラインでのインデックス名の変更 ALTER TABLE t RENAME INDEX i1 to i2; • オンラインでのVARCHAR列の変更 ALTER TABLE t1 ALGORITHM=INPLACE, CHANGE COLUMN c1 c1 VARCHAR(255);
  • 36. レプリケーション
  • 37. 同一スキーマ内でのマルチスレッド スレーブ スレーブのスループットを向上 • スレーブ内の複数のワーカースレッドがトランザ クションを並列で処理 – 並列処理されるトランザクションの対象データが同一 で無い場合に限る – 同一スキーマ内でもマルチスレッドで処理可能 • トランザクションの一貫性を保って処理 • スレーブのスループットを向上 • 現在開発中 – リファクタリング完了 – チューニングや最適化は現在作業中
  • 38. マルチソース レプリケーション Master 1 Master 2 … Master N Binlog Binlog … Binlog IO 1 IO 2 … IO N Relay 1 Relay 2 … Relay N Coordinator Coordinator Coordinator Coordinator W1 W2 … Slave WX W1 W2 … WX W1 W2 … WX W1 W2 … WX labs.mysql.com • 複数のマスターでの変更点を 1台のスレーブに集約 – 全ての「シャード」のデータを単 一のビューで分析 – バックアップ用にデータを集約 • 準同期レプリケーションおよび マルチスレッド スレーブに対応 • マスターごとにフィルタと制御可 能となる予定 • アプリケーションはマスタごとに 個別にアクセス
  • 39. MySQL Utilities
  • 40. MySQL Utilities Powerful DevOps Management tools for MySQL • New, standalone package: MySQL Utilities 1.3 • Automate common Dev/Ops tasks – Replication: provisioning, testing, monitoring and failover (now as daemon) – Database comparisons: consistency checking – Database administration: users, connections, tables, etc – Auditing • Python scripts – Standalone or launched from MySQL Workbench – Available from dev.mysql.com – Extensible to include custom scripting; Python library for extensibility
  • 41. MySQL Utilities – Fabric 「シャーディング」を利用した拡張性 • 対応コネクタ Application Connector SQL MySQL Fabric – Python – Java – PHP • アプリケーションが分割キーを 用意 – レンジまたはハッシュ – シャードの再構成可能 – 全体の一括更新可能 Read-slaves Read-slaves Master group Master group • MySQL Utilities 1.4.0にて提供
  • 42. MySQL Cluster
  • 43.  外部キー  Connection Thread Scalability  MySQL 5.6との統合  Auto-Installer  NoSQL JavaScript for node.js
  • 44. 詳細はこの次のセッションで!! 「SQL+NoSQL!? それならMySQL Clusterでしょ。」
  • 45. MySQL Workbench
  • 46. New! MySQL Workbench 6.0 設計、開発、管理、マイグレーション Windows, Linux, Mac OS X  MySQLアプリ用IDE  ダウンロード数急増中!
  • 47. MySQL Workbench で出来ること • SQL Editior – クエリー実行 – ビジュアルExplain – オブジェクトの確認(スキーマ、テーブル、など) – オブジェクト作成、Alter オブジェクトの実行 – データの確認と編集、、、など
  • 48. MySQL Workbench で出来ること • Server管理 – MySQLサーバをローカル/リモートで管理 – データベース管理 • • • • ユーザ管理 セッションの確認/切断 データベースのデータのダンプ(バックアップ) サーバ変数、ステータス変数の確認、、、など
  • 49. MySQL Workbench で出来ること • データモデリング – E-R図を使ってデータベースを設計/作成 – フォワードエンジニアリング/リバースエンジニアリ ング – 既存データベースのメンテナンス – データモデルのドキュメント化(商用版のみ) – データモデルの検証(商用版のみ)
  • 50. MySQL Workbench で出来ること • データ移行 – MySQLへテーブルとデータを移行 • • • • • MS SQL Server 2000, 2005, 2008, 2010 Sybase ASE PostgreSQL SQL Anywhere SQLite – MySQL から MySQL へデータをコピー
  • 51. MySQL Workbench で出来ること • その他(商用版のみ) – MySQL Enterprise BackupのためのGUI • バックアップジョブの作成/実行/スケジュール、クイッ ク・リカバリ – MySQL Enterprise AuditのためのGUI • 監査ログの確認
  • 52. 起動画面
  • 53. 管理 • MySQLサーバの稼働状況や各機能の設定を確認
  • 54. 管理 • SHOW PROCESS LISTの結果を確認
  • 55. 管理 • ステータス変数やシステム変数を確認
  • 56. 管理 • ユーザ管理、権限管理
  • 57. 管理 • データのエクスポート/インポート
  • 58. 開発 • SQLエディタ
  • 59. 開発 • ビジュアルExplain(MySQL5.6以降で対応)
  • 60. 設計 • データモデルの作成
  • 61. 設計 • ER図作成、フォワード/リバース エンジニアリング
  • 62. マイグレーション • マイグレーションウィザード (他DBからMySQLへの移行をアシスト)
  • 63. MySQL Enterprise Edition
  • 64. MySQL Enterprise Edition 最高レベルの可用性、パフォーマンス、セキュリティ Oracle Premier Lifetime Support MySQL Enterprise Security MySQL Enterprise Audit MySQL Enterprise Scalability MySQL Enterprise High Availability Oracle Product Certifications/Integrations MySQL Enterprise Monitor/Query Analyzer MySQL Enterprise Backup MySQL Workbench
  • 65. MySQL Enterprise Backup 3.9 オンラインホットバックアップ Backup: 73 GB Database • New! 1ステップ • New! フルインスタンスバックアップ – データだけでは無く設定も 200 150 100 0 – MySQL 5.6のトランスポータブル 表領域を活用 – 進捗、バイト数、ステータス • New! ディスク容量監視 – アクション: 警告、リトライ、中止、削除 5.25 mins 50 • New! 選択的リストア • New! 継続的な監視 4h 17 mins 250 Minutes – 直接リストア可能 300 mysqldump MySQL Enterprise Backup
  • 66. MySQL Enterprise Monitor 3.0  リアルタイムでMySQLの稼働状況とパフォーマンスを監視  クエリーの問題を視覚的に把握し、修正  キャパシティプランニングのために、 ディスク使用量を監視  クラウド環境と親和性の高いアーキテクチャ (エージェントレス)  MySQLの監視を10分で開始  OS監視のためのリモートエージェントオプション
  • 67. MySQL Query Analyzer  クエリーのパフォーマンスを リアルタイムで確認  相関関係のあるグラフ  高コストなクエリーを発見し修正  クエリーの詳細情報を確認  Query Response Time index (QRTi) 「MySQL Query Analyzer を使用することで、問題 のあるSQLコードを特定および解析して、データ ベースパフォーマンスを3倍に改善することができ ました。さらに重要なことに、これは、何週間もか からずに、わずか3日で実現できました」 Big Fish Games 社 ソフトウェア開発エンジニア キース・ソーラダ氏 (Keith Souhrada)
  • 68. MySQL Enterprise Edition & Cluster CGEの評価 30日間トライアル • Oracle Software Delivery Cloud http://edelivery.oracle .com/ • 製品パックを選択: “MySQL Database”
  • 69. まとめ MySQLコミュニティのためのイノベーション • この12ヶ月間のリリース: – GA: MySQL 5.6, MySQL Cluster 7.3, MySQL Workbench 6.0, MySQL Enterprise Monitor 3.0, MySQL Utilities, MySQL Connectors など – DMRs: MySQL 5.7 – Labs: Multi-source Replication, Fabric, Hadoop Applier for MySQL • ぜひお試しいただきフィードバックをお願いし ます!