はじめに
いよいよ2019年も終わりに近づいてきました。皆さんも徐々に年末の準備を始め、仕事納めに備えている方も多いのではないでしょうか?
この技術ブログもこれが今年最後の更新となります。そこで、今回は2019年1月からMySQL 関連の主なニュースを1ヶ月ごとに振り返っていきたいと思います。
※ 全てのトピックを網羅したものではありませんのでご了承ください
※ 一部、Percona Server や MariaDB 関連のニュースも混在します
■ 2019年1月
◇ MySQL8.0.14 リリース
MySQL8.0の新バージョンである「8.0.14」がリリースされました。このバージョンではいくつか新機能が追加されていますが、個人的には以下のポイントが大きかったと思います。
- バイナリログ・リレーログの透過的暗号化
それまでのMySQLの透過的暗号化ではテーブルデータやUndoログ、Redoログが暗号化の対象となっていましたが、新たにバイナリログ・リレーログも暗号化されるようになりました。これにより更に強固なセキュリティ要件も満たすことができます。マニュアルはこちらです。
- group_replication_consistency変数の追加
group_replication_consistency変数は、グループレプリケーションの各ノードに対してSELECTを実行した時に、未反映のトランザクションがあった場合の挙動を設定できます。最大級の整合性を保ちたい場合は、「BEFORE_AND_AFTER」を設定すべきですが、全てのトランザクションは未反映の更新が完了してから実行されるため、パフォーマンスが落ちる可能性があります。
また、同じタイミングで MySQL5.6 / 5.7 および NDB Cluster でもそれぞれ新バージョンがリリースされています。これは以降の新バージョンリリースでも同様です。
◇ Percona Server for MySQL 8.0.13-4 リリース
前年12月にGAリリースとなった Percona Server for MySQL 8.0(以下、Percona 8.0)の新バージョンがすぐにリリースされました。内容はバグ修正のみでしたが、GAになってすぐにメンテナンスリリースを出すなど、Percona社の8.0系へかける思いが伝わってくるようでした。
■ 2019年2月
◇ MySQL8.0.15 緊急リリース
MySQLは通常3か月ほどで新バージョンがリリースされますが、前月にリリースされた 8.0.14 に致命的なバグ(ipv6.disable=1 なOS上でレプリケーションが利用できない)があったため、緊急で2/1に新バージョンがリリースされました。
影響度の大きさもそうですが、Oracle社の迅速な対応にも驚かされた出来事でした。
■ 2019年3月
◇ Percona XtraBackup 8.0.5 リリース
前年12月にGAリリースとなったばかりの Percona XtraBackup 8.0 の新バージョンがリリースされました。MySQL8.0で新規実装されたバイナリログ・リレーログの暗号化に対応するなど、8.0環境でも問題なく使えるような工夫がされています。
■ 2019年4月
◇ MySQL8.0.16 リリース
個人的にポイントとなる新機能は以下の通りです。
- CHECK制約の実装
他のRDB(Oracle, PostgreSQL)では早期から実装されていたCHECK制約が、ついにMySQLでも使えるようになりました。マニュアルはこちらです。
- mysql_upgradeコマンドの手動実行が不要に
mysql_upgradeは、MySQLのシステムテーブルに対してチェック・更新を行うコマンドで、バージョンアップ後などには必須の操作です。それが本バージョンから mysqld の起動時に自動で内部実行されるようになったため、手動で実行する必要がなくなりました。手順漏れなどのミスが無くなるため、非常に助かります…。
■ 2019年5月
◇ ProxySQL 2.0 リリース
ProxySQLは、Percona社が主体となって開発するMySQL向けのプロキシソフトウェアです。類似のツールに MySQL Router、MaxScale、HAProxyがあります。同バージョンからMySQL8.0 に正式対応したことに加え、Galera Cluster をネイティブサポートするようになりました。
◇ Percona Live 2019 in Texas Austin 開催
MySQL関連では最大規模となるイベント、Percona LIVE 2019がテキサス州オースティンで開催されました。弊社では初めて同イベントのスポンサーとなり、2名の技術者が現地へと赴きました。イベントレポートもありますので、ぜひご確認ください!
◇ Percona Kubernetes Operator 公開
Percona XtraDB Cluster(以下、PXC)を Kubernetes 上で動作させる Percona Kubernetes Operator がオープンソースで公開されました。近年では当たり前のものになった「Kubernetes」ですが、Perconaも今後はクラウド領域に注力していくとアピールしており、更に盛り上がっていきそうです。
■ 2019年6月
◇ MariaDB 10.4.6 リリース
MariaDB 10.4 における最初のGA版である MariaDB 10.4.6 がリリースされました。個人的に大きな変更点は以下の通りです。
- Galera 4 ライブラリにアップグレード
MariaDB Galera Clusterを利用する際のGalera(wsrep)ライブラリが “3” から “4” にアップグレードされました。同じ Galera を利用している PXC ではまだ “4” がGAになっていないため、一歩先を行っていると言えます。詳細はこちらの記事をご確認ください。
- 認証方式の変更
unix_socketプラグインが導入され、ユーザ情報の格納先が mysql.global_priv table テーブルになるなど、認証周りが大きく変更となっています。詳細はこちらをご確認ください。
次々とメジャーバージョンをリリースしていくMariaDBですが、2020年もこの傾向が続いていくのか楽しみです(次の 10.5 も既に開発は進んでいます)。
■ 2019年7月
◇ MySQL 8.0.17 リリース
個人的にポイントとなる新機能は以下の通りです。
- CLONEプラグインの実装
オンラインで高速にデータの複製をおこなうCLONEプラグインが実装されました。この新機能によって従来のMySQL運用が大きく変わる可能性があり、弊ブログでも度々取り上げています(→ その1, その2)。MySQL InnoDB Clusterでも利用できるようになるなど、今後も大注目の機能です。
■ 2019年8月
◇ Amazon Aurora のマルチマスタ構成が利用可能に
こちらの記事の通り、Amazon RDS for Aurora でマルチマスタ構成が利用できるようになりました。PXC や InnoDB Cluster のように、これからのデータベースはマルチマスタがスタンダードになっていくのかもしれません。
◇ Percona Server for MySQL 8.0.16-7 リリース
Percona 8.0の新バージョンがリリースされました。このバージョンにおける大きな変更点は以下の通りです。
- 新しい暗号化機能のGA
MySQLと同じように、Percona8.0 でも暗号化機能が強化されました。さらに、「一次ファイルの暗号化」(まだexperimental quality)など、MySQLではまだ踏み込み切れていない領域にも挑戦しています。「MySQLの互換性を保ちつつ進化する」Percona Server の方針は、メジャーバージョンが8.0系になってもブレていません。
■ 2019年9月
◇ db tech showcase Tokyo 2019 開催
日本国内有数のデータベース特化イベントであるdb tech showcase Tokyo 2019が秋葉原で開催されました。弊社のエンジニアも一部のセッションを聴講しましたが、MySQLなど有名なDBだけでなく大小様々なDB製品が取り上げられ、年々多様になっていくのを実感しました。来年も楽しみです。
◇ Oracle Open World 2019 開催
Oracle社が主催する世界最大規模のイベント、Oracle OpenWorld 2019(以下、OOW 2019)が開催されました。主力製品であるOracle関連の発表・セッションがメインですが、勿論MySQLに関してもいくつか発表がありました。いくつか個人的に気になったものを列挙しましょう。
- Oracle Autonomous Linux の発表
Oracleは現在「自立型データベース」、つまり人間が手を加えなくても自動でチューニングなどを行うデータベースを売りにしていますが、その領域がOS(Oracle Linux)にまで及ぶようになりました。自動化が一種のトレンドになる昨今ですが、その一助となるのは間違いないでしょう。
- メルカリの登壇
日本から株式会社メルカリがOOW 2019に登壇し、日本オラクルの協力のもと実施した「MySQL Analytics Service」の実証テストについて報告されました。国内でも大規模なMySQL環境を運用している同社だからこそできる役割と言え、日本企業が登壇するケースも余り見たことがなかったので印象深かったです。
※ MySQL関連のトピックスはこちらからダウンロードできる資料にまとめられています(アカウント登録が必要です)
最近のOracle社は Oracle Cloud への注力が顕著であり、同イベントでは競合相手である Microsoft Azure との相互接続の促進も発表されました。今後のOracle社の動きから目が離せませんね。
※ ちなみに Oracle Cloud に関しては弊社でも力を入れており、関連記事も多数書いています
■ 2019年10月
◇ Percona XtraDB Cluster 8.0の experimental release が公開
こちらの記事の通り、PXC8.0の experimental release が公開されました。まだGAまでは時間がかかりそうですが、機能が大幅に強化されている InnoDB Cluster や MariaDB Galera との差別化をどうするのか非常に気になっています。
◇ MySQL 8.0.18 リリース
個人的にポイントとなる新機能は以下の通りです。
- HASH JOINの実装
テーブル結合の方式として HASH JOIN(ハッシュ結合)がサポートされるようになりました。従来、MySQLのJOIN方式といえば Nested Loop でしたが、方式が増えたことでクエリの問題(スロークエリ等)が改善される可能性があります。
- EXPLAIN ANALYZE の実装
クエリの問題に欠かせないものが MySQL のEXPLAIN(実行計画)ですが、同機能を拡張した EXPLAIN ANALYZE が実装されました。これを使えばこれまで以上に詳細な情報を得ることができ、効率的なクエリチューニングができます。
■ 2019年11月
◇ MySQL Innovation Day 2019 開催
Oracleの開発責任者らが日本に来日し、MySQL Innovation Day 2019が開催されました。同イベントの趣旨は「OOW 2019」の発表内容のフィードバックでしたが、その他にも様々な技術セッションが開かれました。
セミナー資料はこちらのページからダウンロードが可能です(アカウント登録が必要です)
■ 2019年12月
◇ Amazon RDS Proxyがプレビュー公開
Amazon RDS向けのプロキシとなる Amazon RDS Proxy がプレビュー公開されました。これまでAWS環境内でアプリケーションからRDSインスタンスに対して直接接続を貼っていた環境に導入することで、スケーラビリティや可用性の向上が期待できます。特に、AWS Lambda を利用していたユーザにはフィットするでしょう。現在は RDS for MySQL と Amazon Aurora のみに対応していますが、今後 RDS PostgreSQL および Aurora PostgreSQL のサポートも予定されています。
おわりに
2019年の主なトピックを振り返ってみましたが、今年は特にMySQL関連のイベントが多かった印象です。ここに載せられていないもの含め、毎月のようにどこかでイベントが開催されていたと思います。MySQLがOSSである以上、こうしたコミュニティの活動が大きく寄与していくことでしょう。
※ 弊社でも随時イベントを開催していますので、もし興味があれば こちら をチェックしてみてください
技術ブログの更新は来年1月6日週から再開する予定です。それでは皆様、良いお年を!