初公開から20年、「MySQL 5.7」が性能強化とネイティブJSON対応で得たもの:Database Watch(2016年2月版)(1/2 ページ)
2015年10月、新バージョンとなるMySQL 5.7 正式版がリリースされました。オプティマイザーのリファクタリングによる性能強化、NoSQL機能強化となるネイティブJSON対応が目立つ特徴です。
前回振り返った「MySQLあるある」と関連し、今回は、「MySQLの最新事情」に迫りましょう。
2015年10月22日、米オラクルの年次イベント「Oracle OpenWorld 2015」(以下、OOW15)の開幕直前に、MySQLの新バージョン「MySQL 5.7」が発表されました。そのためか、OOW15でもMySQL関連のセッションが多く行われ、MySQL 5.7の新機能や改善点の詳細が要所で語られました。MySQLの基調講演では、米ゼネラルエレクトリック(GE)や米ピンタレストのような大規模な環境でMySQLを使う事例も紹介されました。
MySQL 5.7の大きな改善点は、「オプティマイザーの改善で性能が強化された」こと、そして「JSON型のサポート」です。
まず性能面では、SQLによる一意検索(160万QPS)やOLTPの読み取りのみ(100万QPSまで)の条件下で、前バージョンであるMySQL 5.6より「3倍速い」とし、OLTPの読み取りと書き込みの組み合わせでも「1.5倍速い」とする性能向上の検証結果が示されました。
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.
関連記事
- 「Database Watch」バックナンバー
- Database Expert
- オラクル、“3倍高速”な「MySQL 5.7」一般提供開始
オラクルが「MySQL 5.7」の一般提供を開始。前バージョン比で最大3倍高速とする性能、拡張性、管理性の向上、JSONサポートによるNoSQL機能などを強化した。 - なぜリファクタリングは必要なのか?
今回からいよいよコードの話を始めます。もはやRubyの文化の一部だという主張もあるリファクタリング、テストについて、その意義や概要を紹介します - 「ドクターSQL」に聞く、次期標準「SQL2016」で注目すべき三つの新機能
RDBでデータを操作する言語が「SQL」です。その仕様は国際標準となっており、RDBの普及を強く支えています。今でも進化を続け、次期版の標準となる予定の「SQL2016」はどうなるのか。“ドクターSQL”こと日本データベース学会副会長の土田正士氏に話を聞きました。 - 信頼性とパフォーマンスを改善したMySQL 5.6をウォッチ!
2013年2月にリリースされたMySQL 5.6。主要機能や採用事例などを「Oracle MySQL Tech Tour Tokyo」でウォッチしてきた。 - オラクル、“3倍高速”な「MySQL 5.7」一般提供開始
オラクルが「MySQL 5.7」の一般提供を開始。前バージョン比で最大3倍高速とする性能、拡張性、管理性の向上、JSONサポートによるNoSQL機能などを強化した。 - MySQLの基礎を学ぼう [準備編]
- AjaxのバックエンドにPHP+MySQL
- とうとう買収されちゃったMySQLの運命やいかに
- オラクルのサン買収、MySQLコミュニティの反応は?