読者の皆様へ:ノイズを減らすための一連の機能を開発しました。関心のあるトピックについて電子メールとWeb通知を受け取ることができます。新機能の詳細をご覧ください。
MySQLは8番目のバージョンの準備を進めており、2018年にリリースされる予定である。MySQL 5.7.9の最初の一般リリースから28ヶ月が経過し、すでにMySQL 8のリリース候補版が8.0.0から8.0.4まで5つある。これらのリリース候補版は、開発目的でのみ使用されるため、本番システムでは使用すべきでない。アップグレードがサポートされず、リリース候補版と一般的に利用できるバージョンとの間でデータフォーマットの互換性がないかもしれない。
MySQLのユーザが最初に気づくのは、バージョン番号がジャンプすることである。これは、バージョン6が打ち切りになり、バージョン7がエンタープライズ製品ライン用に予約されているためである。ウィンドウ関数は、MySQL 8の最も興味深い機能の1つである。すでに他のデータベースエンジンに存在するウィンドウ関数は、クエリ結果の行のグループに対して集計を実行し、各行に対して結果を生成することができる。ウィンドウ関数と同様に、Recursive Common Table Expressionsでは、カーソルを使用せずに、独自の名前を参照するサブクエリを実行できる。このプレゼンテーションでは、そのテーマについて詳しく説明している。
デフォルトの文字セットのサポートもlatin1からutf8mb4に変更されている。 utf8mb4は文字あたり最大4バイトを使用し、日本語の場合はutf8mb4_ja_0900_as_csのような拡張された文字の集合と絵文字をサポートしているため、ほとんどのユースケースに適した文字セットである。ストレージについては、デフォルトのストレージエンジンはInnoDBとなる。
インビジブルインデックスを使用すると、DBAはクエリオプティマイザからインデックスを除外できる。これによって、インデックスがパフォーマンスを改善しているかどうかをテストし、実際のユーザに対して有効にする前にインデックスをステージ環境で検証することができる。パスクエリの引数に基づいてjsonフィールドからデータを抽出するJSON_EXTRACT()関数の追加で、JSONサポートは大幅に改善された。JSON_ARRAYAGG()、JSON_OBJECTAGG()集約関数を使用して、データをJSON配列とオブジェクトにそれぞれ結合することができる。
最後に、MySQL 8はロールに対する柔軟なサポートを提供する。ロール機能の作成、削除、付与と、さらにロールへのロール付与まで可能である。セッションあたりのロールを制限すること、ロールを使用できるホストを指定することは、MySQL 8ですべて利用可能である。DBAは、ROLES_GRAPHML()関数を呼び出すことにより、ロールをGraphMLによって可視化することもできる。
MySQL 8は2017年10月にリリース予定で、8.0.4RCが2018年1月23日にリリースされたが、GAバージョンがリリースされる前に少なくとも2つのリリース候補版が予定されている。
Rate this Article
- Editor Review
- Chief Editor Action