MySQL 5.7の機能拡張で最も目を引くのは「ネイティブJSON対応」です。これは、MySQL 5.7の最大の特徴と思います。JSON対応によって、NoSQLデータベースが不要になる……とまでは言えませんが、MySQLの可能性を広げることは確かでしょう。
以前の記事で、「“SQL標準/SQL2016”はJSONデータを直接操作できるようになるが、ネイティブのJSONデータ形式を保持できるわけではない」と説明しました。これに対し、MySQL 5.7は「ネイティブのJSONデータ型に対応」します。JSON型のデータをそのまま保存、処理できるようになります。
ネイティブのJSONデータ型で処理できると、何が良いのでしょう。オラクルのユリン氏によると、「確実に性能面で有利」とのことです。OOW15のセッションでは、インデックスを使用しない20万6000件(約200MB)のドキュメントへのトラバーサル(構造解析)をした場合、テキスト型でSELECTを実施した応答時間が12.85秒であったのに対し、ネイティブのJSONデータ型ならば1.25秒で済むとする検証結果を示し、「ネイティブJSON型ならば、テキスト型に比べて10倍以上性能が向上する」と説明しています。JSONデータを扱うなら、ネイティブのままデータを利用できるMySQLは利点の一つとなりそうです。
JSON関係では、組み込みJSON関数で効率良くドキュメントを操作するために、JSONコンパレーターで文書データをSQLクエリと統合する、「Generated Columns」でドキュメントにインデックスを作成することも可能となります。最新版のアナライザーであれば、自動的に最適なインデックスを選ぶように配慮されているそうです。
他にも、標準ストレージエンジンである「InnoDB」でリソースの使用量が削減され、透過的なページレベル圧縮も可能になるなど、ストレージ利用効率を向上させる改善が加えられています。MySQL 5.6の新機能として登場した「GTID(Global Transaction ID)」は、新バージョンの5.7ではオンラインで有効化できるようになり、レプリケーションでは複数のマスターを1台のスレーブに集約する「マルチスレーブ・レプリケーション」が可能になるなど、多方面で機能拡張が進んでいます。
(関連記事)レプリケーションで追加されたGTIDとは
最後におまけです。2015年はMySQLの公開から20年、日本MySQLユーザ会の設立から15年、オラクルがInnoDBを買収して10年、オラクルがサン・マイクロシステムズを買収して5年という節目の年でした。
2015年10月30日には、日本でも日本MySQLユーザ会による15周年パーティーが行われました。最新情報の共有などはもちろん、これまでの買収に伴う激動の歴史を振り返る場面などもあり、とても盛り上がりました。
オープンソースソフトウェアの世界で製品がどれだけ発展するかは、開発者が中心のユーザーコミュニティーの熱気次第という状況もあります。その点、OOW15で見た米国/グローバルでのコミュニティーも、日本のコミュニティーも、MySQLコミュニティーメンバーからは製品への愛着や結束が伝わってきました。
Copyright © ITmedia, Inc. All Rights Reserved.