MySQL8.0 Innovation Day in 福岡に参加してみた。

イベントの目次

  • MySQL 8.0の新機能と改善点
  • MySQL Enterprise Edition最新情報
  • MySQL 8.0 InnoDB Clusterについて新機能と今後
  • Q&A

イベントに参加して感じたことはMySQL8.0になって想像よりも新機能が増えたな!という印象でした。
また、メーカが主催する新機能の説明イベントは初参加ということもあり、MySQL5系を業務や趣味で使っていましたが今まで知らなかった機能や知識を習得できました。
参加して良かったです。
今回、学んだことを自分なりにまとめます。

GIS機能の改善

GISとは、Geographic Information System の略称で日本語では地理情報システムというものです。
具体的にどう変わったかというと、
MySQL5.6->業界標準のシステムでなく、MySQL独自のシステムを使用している。
MySQL5.7->過去のシステムを刷新し、C++のboost geometryを使用。
MySQL8.0->球面座標、測地座標系サポート。地球が丸いことを認識できるようになった。過去バージョンと比較すると数十メートルの誤差が出るときもあったようです。より、正確になったんだなというのが伝わった。
これからPCだけでなくスマホを各自持ち歩くので位置情報の管理というのがとても重要になってくることは間違い無いので、この機能改善は必須だと感じました。

デフォルト文字コードがutf8mb4に変更

PCだけでなく、スマートフォンにも対応するために文字コードのデフォルトをlatin1からutf8mb4に変更。
毎回設定で文字コードをutf8mb4に変える手間がなくなりました..!

NoSQL機能追加

MySQL の新しいプロトコル「X Protocol」を通じて、ドキュメントストア(JSONデータ)にアクセスすることができる。
X Protocolを使用する際は「33060」ポートを解放する必要があるので注意が必要です。
ドキュメントストアは、個々のドキュメントのデータ構造は自由で、データを追加などを都度変えることができ、リレーショナルデータベースとは違って、事前にテーブルの構造を決めておく必要がありません。このことを「スキーマレス」(Schemaless)と呼びます。
MySQL5.7から追加された、jsonデータ型(blobの拡張として搭載)は存在していたが、データの取得等はSQLで行う必要があり、複雑になりがちだった。
MySQL8.0からは、MySQL X DEVAPIというNoSQLにてデータにアクセスできる、json型で一部のデータの部分更新ができるようになった、以前は全体更新だった。

新しいMySQLクライアントツール登場

mysqlコマンドも以前と同様に使うことは可能ですが、MySQL8.0からは、「mysqlsh」というクライアントツールが使えます。
JavascriptとPythonでデータの取得が出来る。

その他印象に残ったもの

不可視インデックス

付与したインデックスを一時的になくして、付けなおしたりすることが出来る機能のこと。
データ量が多くなると、インデックスをつけ直すというのはものすごく負荷のかかる作業になるが、不可視インデックスを使えば、インデックスを一旦なくして、やっぱり付け直す。というのが迅速にできる。

SET PERSISTによる設定の永続化

MySQLを再起動しても設定が消えないように永続化してくれる。

アトミックな挙動に変更

以前のMySQLだと、3人のユーザをまとめて追加する処理を行ったが、1人のユーザは既に登録されていた場合、エラーにならず、存在していない2人のユーザだけ追加する挙動だった。
MySQL8.0からは、アトミックな挙動、1人のユーザが存在した場合はエラーを出力するようになった。

筆者の考察

上記の内容はまだ、MySQL 8.0の新機能と改善点の部分だけです。
新しい機能や以前のバージョンはこうだった、なども教えていただけたのでとても面白かったです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

山中 雅彦

大分でWebシステム受託開発会社のバックエンドエンジニアとして働いてます。 Laravel5でのシステム開発を中心に仕事してます。 高校卒業後に鉄鋼会社で電気整備の仕事をする傍ら、HTML、CSS、JS、PHP、MySQL、サーバ関連技術を独学で勉強。 2017年9月にWebシステム開発会社に入社し、システム開発をしています。 Web技術全般が好きなPHPerです。