検索
連載

初公開から20年、「MySQL 5.7」が性能強化とネイティブJSON対応で得たものDatabase Watch(2016年2月版)(1/2 ページ)

2015年10月、新バージョンとなるMySQL 5.7 正式版がリリースされました。オプティマイザーのリファクタリングによる性能強化、NoSQL機能強化となるネイティブJSON対応が目立つ特徴です。

Share
Tweet
LINE
Hatena

連載バックナンバー

 前回振り返った「MySQLあるある」と関連し、今回は、「MySQLの最新事情」に迫りましょう。

 2015年10月22日、米オラクルの年次イベント「Oracle OpenWorld 2015」(以下、OOW15)の開幕直前に、MySQLの新バージョン「MySQL 5.7」が発表されました。そのためか、OOW15でもMySQL関連のセッションが多く行われ、MySQL 5.7の新機能や改善点の詳細が要所で語られました。MySQLの基調講演では、米ゼネラルエレクトリック(GE)や米ピンタレストのような大規模な環境でMySQLを使う事例も紹介されました。

photo OOW15でMySQL 5.7を解説する米オラクルのトーマス・ユリン氏(MySQLエンジニアリング担当バイスプレジデント)

 MySQL 5.7の大きな改善点は、「オプティマイザーの改善で性能が強化された」こと、そして「JSON型のサポート」です。

 まず性能面では、SQLによる一意検索(160万QPS)やOLTPの読み取りのみ(100万QPSまで)の条件下で、前バージョンであるMySQL 5.6より「3倍速い」とし、OLTPの読み取りと書き込みの組み合わせでも「1.5倍速い」とする性能向上の検証結果が示されました。

photo OOW15で示された、MySQL 5.7のSQLによる一意検索速度の検証結果

 MySQL 5.7では、可読性、保守性、安定性を高める目的で、オプティマイザーとパーサーのリファクタリングを行っています。


 また、オプティマイザーのモードを制御できる「新しいヒント句」が追加されました。例えば「BKA」や「NO_BKA」です。BKAは、前バージョンのMySQL 5.6で機能が追加された「Batched Key Access」と呼ばれる結合アルゴリズムです。MySQL 5.7では、この結合アルゴリズムを「SQLのヒント句で使うかどうかを制御できる」ようになりました。

 他にも「JOIN EXPLAINを拡張」したことで、コスト情報が追加可能となりました。これにより、具体的な数値でコスト情報を記載することで、より細かいチューニングが可能となります。また、一時テーブルに「InnoDB」を使うことで、「CREATE」や「DROP」のパフォーマンスを改善するといった性能向上につなげています。このようなオプティマイザー周辺の細かい改善が多く見受けられます。

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る