
日本のMySQLユーザーには半年に一度のお祭り。2018年11月21日に「Oracle MySQL Innovation Day 2018 秋」が開催された。海外の開発チームがMySQL 8.0 新機能を数多く詳細に解説した。詳細解説や検証報告、質問大会まで最後まで盛り上がった。
MySQL 8.0 新機能:ドキュメントストア、データディクショナリ、性能強化
最初に登壇したのはオラクルでMySQL開発を率いるトーマス・ウリン氏。2018年4月にGAとなったMySQL 8.0を象徴するフレーズは「NoSQL+SQL=MySQL」。SQL(RDB)もNoSQLもどちらも使えるデータベースであることを表している。

トーマス・ウリン氏、Oracle MySQLエンジニアリング担当VP
スウェーデン在住で週に一度は空手の練習に励み、黒帯まであと少しだそうだ。
参考記事:「もうRDBとNoSQLを選ぶ必要はない MySQLなら両方できる」
簡単にMySQL 8.0のトピックをまとめておこう。やはり最大の特徴はドキュメントストアとしての機能強化だ。JSONドキュメントのサポートや「X DevAPI」や「MySQL Shell」の拡張など、5.7から始まったドキュメントストア機能を8.0で本格的に強化している。
MySQLをドキュメントストア使う場合、主要なコンポーネントとなるのはMySQL X プラグイン、X プロトコル、X DevAPI(ライブラリ)、MySQL Shell(インターフェース)、MySQL コネクタ、InnoDBクラスタ(拡張性や高可用性に有効)がある。
意外かもしれないが、NoSQLだけではなくSQLも強化している。代表的なものはWindow関数とCTE(Common Table Expression)。前者は分析やレポートで使うための関数で、RANK関数やLAG関数などがある。後者は共通テーブル式や再帰クエリとも呼ばれ、一時テーブルを作成してSQL実行できる。SQLのネストを避けることができてシンプルなSQLになる。いずれもリクエストが多く、ユーザーには待ち焦がれた新機能だ。
それからトランザクショナル データ ディクショナリ。ウリン氏によると「開発で多くを費やした」部分だそうだ。新機能というより、内部的に改善を施して安定性を高めた点が大きい。これまで外部ファイルに格納していたテーブル定義(メタデータ)をInnoDBに内包することで、確実に同期できるようになる。
テーブル定義をInnoDBに格納することは、InnoDBがMySQLのデフォルトストレージエンジンなので当然と言えば当然。しかしここからMySQL開発チームがInnoDBに開発リソースを集中していこうとする意向が見てとれる。
それから目を引く新機能が「Instant Alter Table」。既存のテーブルに列を追加するなど、Instantの名の通り既存のテーブルに新たに列を高速に追加できる。実はこれ、中国のテンセントからのコントリビューションだそうだ。
性能に関してオラクルは「MySQL 8.0は5.7に比べて最大2倍高速」とうたっている。8.0は5.7と比較すると、性能ピークが接続ユーザー数が多いところにある。ウリン氏が示したベンチマーク結果で使われたサーバーはCPUが48コア、メモリは256GB。ウリン氏は「サーバーのコストに合うように、いいマシンを買えば、その分、高い性能を出せます」と話す。
この記事は参考になりましたか?
- この記事の著者
-
加山 恵美(カヤマ エミ)
EnterpriseZine/Security Online キュレーターフリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Online の取材・記事も担当しています。Webサイト:https://emiekayama.net
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア