Upload
yoyamasaki
View
1.947
Download
5
Embed Size (px)
DESCRIPTION
KOF2013での発表資料です。
Citation preview
States of Dolphin - MySQL最新技術情報2013秋 -
日本MySQLユーザ会
やまさき よしあき(@yyamasaki1)
日本MySQLユーザ会とは
• 日本でのMySQLの普及、ユーザ間のコミュニケーションを図るための会
• 現在の主な活動は ML での意見交換
–時々、コミュニティイベントやオフ会も開催
• MySQL に興味がある方はどなたでも入会可能。会費も無し。退会も自由。
日本MySQLユーザ会とは
• 略称はMyNA(MySQL Nippon Association)
• ホームページ http://www.mysql.gr.jp/
• 入会申請 http://www.mysql.gr.jp/ml.html
MySQL Connect 2013開催!!
• Oracle Open World開催に合わせて、 MySQLとしての独立したイベントを開催 (2013年9月21日~9月23日、サンフランシスコで開催)
• 基調講演、 Facebook、Twitter、LinkedIn、PayPalによるパネルディスカッション、など、全部で80以上のセッションを開催
• Oracle製品の中で単独の製品で独立したイベントを開催しているのは、MySQL以外にはJavaのJava Oneだけ
MySQL Connect 2013開催!!
• セッション資料は、今後こちらで順次公開される予定
• 本日は、基調講演の内容+α をこのセッションで紹介します
以下の事項は、オラクル社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、オラクル社の裁量により決定されます。
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
MySQL 5.5 MySQL Cluster 7.3
MySQL Enterprise Monitor 2.3 MySQL Enterprise Backup Security Scalability HA Audit
MySQL 5.6
MySQL Workbench 6.0
M y S Q L U t i l i t i e s
M y S Q L A p p l i e r f o r
H a d o o p
MySQL Workbench 5.2
M y S Q L E n t e r p r i s e O r a c l e C e r t i f i c a t i o n s
M y S Q L C l u s t e r M a n a g e r Windows installer & Tools
MySQL Cluster 7.2 MySQL Cluster 7.1
MySQL Migration Wizard
MySQLのイノベーション
イノベーションの推進と「品質」向上
• 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
MySQL 5.6: 今までで最高のリリース
“MySQL 5.6 is probably the version of MySQL with the biggest bundle of new features.” Giuseppe Maxia
“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 an impressive release with features that make it much easier to scale MySQL and take advantage of modern hardware.” Mark Callaghan
“MySQL vs MariaDB performance. The obvious take away is as expected, upgrade any 5.5 installations to 5.6.” Brian Aker
“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
The Open Road to 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
Predictable Releases for the MySQL Community, Allowing Feedback
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
MySQL製品アップデート
MySQL 5.6 GA
• オプティマイザ: パフォーマンス&スケーラビリティ
• パフォーマンス・スキーマ: より詳細な統計情報
• InnoDB: トランザクション・スループットの向上
• レプリケーション: さらなる可用性とデータの整合性
• 「NotOnlySQL」オプション: さらなる柔軟性
• ダウンロードはこちらから!
dev.mysql.com/downloads/mysql/
New!
MySQL 5.6: Scalability
最新のOSやハードウェアのリソースを有効活用
データ量やユーザ数の増加に追随する拡張性
MySQL 5.6 SysBench Benchmarks
MySQL 5.5
MySQL 5.6
Up to 234% Performance Gain
MySQL 5.6: 急速に広まる採用
• MySQLコミュニティから強く求められていた機能群 • 高い品質、単に機能数を増やすだけでは無い • 圧倒的な性能向上
– InnoDB、オプティマイザ、並列実行性能、ロック、IO、接続など
• 開発者向け機能 – クエリ、パーティショニング、NoSQL、実行計画など
• より簡単な管理とコスト削減 – 高可用性構成/レプリケーション – 管理がシンプルに – 稼働状況の監視を改良 (Performance Schema)
新機能も高い品質 & 圧倒的に向上した性能
MySQL Database 5.7 DMRs 最新機能
DMRs: Development Milestone Releases
• リリース候補版の品質になった機能のみを含む
• 年に2-4回リリース
• コミュニティでのテストや使用、フィードバックのため
• 機能拡張の加速
• 品質の改善
MySQL 5.7.2 DMR
• InnoDB より高いトランザクション処理性能と可用性
• レプリケーション より高い拡張性と可用性
• Performance Schema より詳細な性能統計情報
• オプティマイザ EXPLAIN可視化の改良
Available Now! Get it here:
MySQL 5.6をベースに各種機能を改良
dev.mysql.com/downloads/mysql/
New!
MySQL 5.7.2 Sysbench Benchmarks 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
MySQL 5.7.2 Sysbench Benchmarks OLTP Read Only
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
0
5000
10000
15000
20000
25000
8 16 32 64 128 256 512 1024
Tran
sact
ion
s p
er
Seco
nd
Concurrent User Sessions
MySQL-5.7
MySQL-5.6
MySQL-5.5
17% Faster than MySQL 5.6 134% Faster than MySQL 5.5
sb_OLTP_RO_1M_8tab-ps Max-TPS
MySQL 5.7.2: 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
Facebookからの要望をベースに開発 THDの初期化処理とネットワークの初期化処理をワーカースレッドに分離
• mysql-bench • 25 concurrent client threads • Executing connect/select/disconnect • 100000 iterations each
+32% +64%
MySQL 5.7.2: InnoDB Temporary Tables 性能の向上
0
500
1000
1500
2000
2500
create/drop insert delete update
Tota
l Tim
e in
Se
con
ds
MySQL 5.7 versus 5.6 2 - 11 X Improvement
5.6.13
5.7.2
11倍 高速化 CREATE/DROP テーブルの作成や削除処理中のIOを 削減 2-4倍 高速化 INSERT/DELETE/ UPDATE REDOログの書き込み、ロックおよびチェンジバッファの利用を削減
Total time to complete in seconds
11X 2X
4X 2X
* sql-bench, modified to use temp-tables * Seed size of 10K for Create/Drop * Seed size of 5M for Insert/Delete/Update
オプティマイザ
MySQL 5.7.2: オプティマイザ 稼働中のクエリに対するEXPLAIN
• 課題 - あるセッションのクエリの処理に長い時間がかかる
• 新しいオプション – 他のセッションに対して EXPLAIN FOR CONNECTION
– 遅延の根本原因を発見できる
– クエリの最適化につなげられる
• コネクションの<id>は SHOW PROCESSLIST で確認
EXPLAIN [FORMAT=(JSON|TRADITIONAL)] [EXTENDED] FOR CONNECTION <id>;
MySQL 5.7.2: Optimizer JSON EXPLAIN の拡張
Performance Schema
MySQL 5.7.2 Performance Schema メモリ利用状況
• メモリに関する利用統計情報
– 200件以上のメモリ関連Instruments(統計項目)
• 利用統計情報をグルーピング – メモリの利用タイプ (キャッシュ、内部バッファなど)
– スレッド/アカウント/ユーザ/ホストの間接的なメモリ利用
• Attributes(属性情報)の種類 – 利用量 (バイト単位)、処理回数、最大値/最小値
MySQL 5.7.2 Performance Schema 統計情報の例
• クエリの最適化やクエリ実行のメインのバッファに必要な領域
memory/sql/thd::main_mem_root • プリペアードステートメントに必要な領域
memory/sql/Prepared_statement::main_mem_root
• ソートのバッファ領域 memory/sql/Filesort_buffer::sort_keys • JOINバッファ領域 memory/sql/JOIN_CACHE
SELECT * FROM setup_instruments;
MySQL 5.7.2 Performance Schema ストアドプログラムの稼働統計
• SQL文の稼働統計を拡張 – 5.6を拡張しストアドプログラムをカバー、必要なコマンドとSQLを追加
• 新しいInstruments – statement/sp/cclose, cfetch, copen – statement/scheduler/event
• 新しいオブジェクトタイプ – EVENT, FUNCTION, PROCEDURE, TRIGGER
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
– 全てのストアドプログラムの統計の合算
InnoDB
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 を 実行する必要無し
MySQL 5.7.2: InnoDB 一時表の性能向上
• 一時表のための表領域を分離 – 表領域 ibtmp1, 起動時に再作成
• 一時表の CREATE/DROP 性能を向上 – DDLによる変更を最小限にしIOを抑制
• DMLの処理を一時表に最適化 – REDOログに書き込まない、チェンジバッファを利用しない、ロックしない
• InnoDB の一時表のUNDOログは一時表の表領域に – 一時表の表領域のUNDOログのみ利用、REDOログには一切書き込まない
MySQL 5.7.2: InnoDB オンラインALTER TABLE の拡張
• オンラインでのインデックス名の変更
• オンラインでのVARCHAR列の変更
ALTER TABLE t1 ALGORITHM=INPLACE,
CHANGE COLUMN c1 c1 VARCHAR(255);
ALTER TABLE t RENAME INDEX i1 to i2;
レプリケーション
同一スキーマ内でのマルチスレッド スレーブ スレーブのスループットを向上
• スレーブ内の複数のワーカースレッドがトランザクションを並列で処理 – 並列処理されるトランザクションの対象データが同一で無い場合に限る
– 同一スキーマ内でもマルチスレッドで処理可能
• トランザクションの一貫性を保って処理
• スレーブのスループットを向上
• 現在開発中 – リファクタリング完了
– チューニングや最適化は現在作業中
マルチソース レプリケーション
• 複数のマスターでの変更点を 1台のスレーブに集約
– 全ての「シャード」のデータを単一のビューで分析
– バックアップ用にデータを集約
• 準同期レプリケーションおよびマルチスレッド スレーブに対応
• マスターごとにフィルタと制御可能となる予定
• アプリケーションはマスタごとに個別にアクセス
labs.mysql.com
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
MySQL Utilities
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
MySQL Utilities – Fabric 「シャーディング」を利用した拡張性
• 対応コネクタ
– Python
– Java
– PHP
• アプリケーションが分割キーを用意
– レンジまたはハッシュ
– シャードの再構成可能
– 全体の一括更新可能
• MySQL Utilities 1.4.0にて提供
MySQL Fabric
Connector
Application
Read-slaves
SQL
Master group
Read-slaves
Master group
MySQL Cluster
外部キー Connection Thread Scalability MySQL 5.6との統合
Auto-Installer NoSQL JavaScript for node.js
詳細はこの次のセッションで!!
「SQL+NoSQL!? それならMySQL Clusterでしょ。」
MySQL Workbench
New! MySQL Workbench 6.0 設計、開発、管理、マイグレーション Windows, Linux, Mac OS X
MySQLアプリ用IDE
ダウンロード数急増中!
MySQL Workbench で出来ること
• SQL Editior
– クエリー実行
–ビジュアルExplain
–オブジェクトの確認(スキーマ、テーブル、など)
–オブジェクト作成、Alter オブジェクトの実行
–データの確認と編集、、、など
MySQL Workbench で出来ること
• Server管理
– MySQLサーバをローカル/リモートで管理
–データベース管理
• ユーザ管理
• セッションの確認/切断
• データベースのデータのダンプ(バックアップ)
• サーバ変数、ステータス変数の確認、、、など
MySQL Workbench で出来ること
• データモデリング
– E-R図を使ってデータベースを設計/作成
– フォワードエンジニアリング/リバースエンジニアリング
–既存データベースのメンテナンス
–データモデルのドキュメント化(商用版のみ)
–データモデルの検証(商用版のみ)
MySQL Workbench で出来ること
• データ移行
– MySQLへテーブルとデータを移行
• MS SQL Server 2000, 2005, 2008, 2010
• Sybase ASE
• PostgreSQL
• SQL Anywhere
• SQLite
– MySQL から MySQL へデータをコピー
MySQL Workbench で出来ること
• その他(商用版のみ)
– MySQL Enterprise BackupのためのGUI
• バックアップジョブの作成/実行/スケジュール、クイック・リカバリ
– MySQL Enterprise AuditのためのGUI
• 監査ログの確認
起動画面
管理 • MySQLサーバの稼働状況や各機能の設定を確認
管理
• SHOW PROCESS LISTの結果を確認
管理
• ステータス変数やシステム変数を確認
管理
• ユーザ管理、権限管理
管理
• データのエクスポート/インポート
開発
• SQLエディタ
開発
• ビジュアルExplain(MySQL5.6以降で対応)
設計
• データモデルの作成
設計
• ER図作成、フォワード/リバース エンジニアリング
マイグレーション
• マイグレーションウィザード
(他DBからMySQLへの移行をアシスト)
MySQL Enterprise Edition
MySQL Enterprise Edition 最高レベルの可用性、パフォーマンス、セキュリティ
Oracle Premier Lifetime Support
Oracle Product Certifications/Integrations
MySQL Enterprise High Availability
MySQL Enterprise Security
MySQL Enterprise Scalability
MySQL Enterprise Backup
MySQL Enterprise Monitor/Query Analyzer
MySQL Workbench
MySQL Enterprise Audit
MySQL Enterprise Backup 3.9 オンラインホットバックアップ
• New! 1ステップ – 直接リストア可能
• New! フルインスタンスバックアップ – データだけでは無く設定も
• New! 選択的リストア – MySQL 5.6のトランスポータブル 表領域を活用
• New! 継続的な監視 – 進捗、バイト数、ステータス
• New! ディスク容量監視 – アクション: 警告、リトライ、中止、削除
4h 17 mins
5.25 mins
0
50
100
150
200
250
300
mysqldump MySQL Enterprise Backup
Min
ute
s
Backup: 73 GB Database
MySQL Enterprise Monitor 3.0
リアルタイムでMySQLの稼働状況とパフォーマンスを監視
クエリーの問題を視覚的に把握し、修正
キャパシティプランニングのために、 ディスク使用量を監視
クラウド環境と親和性の高いアーキテクチャ (エージェントレス)
MySQLの監視を10分で開始
OS監視のためのリモートエージェントオプション
MySQL Query Analyzer
クエリーのパフォーマンスを リアルタイムで確認
相関関係のあるグラフ
高コストなクエリーを発見し修正
クエリーの詳細情報を確認
Query Response Time index (QRTi)
「MySQL Query Analyzer を使用することで、問題のあるSQLコードを特定および解析して、データベースパフォーマンスを3倍に改善することができました。さらに重要なことに、これは、何週間もかからずに、わずか3日で実現できました」 Big Fish Games 社 ソフトウェア開発エンジニア キース・ソーラダ氏 (Keith Souhrada)
MySQL Enterprise Edition &
Cluster CGEの評価
• Oracle Software Delivery Cloud
http://edelivery.oracle
.com/
• 製品パックを選択:
“MySQL Database”
30日間トライアル
まとめ 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
• ぜひお試しいただきフィードバックをお願いします!