MySQL 8.0.11 (GA)がリリースされました

 慣例(?)として4月下旬には出るのではないか、と勝手に予測していた MySQL 8.0 が、私の予想よりもほんの少し早くリリースされました*1。ついに待望の GA です。
MySQL 5.7 で、それ以前のバージョンと比べて非常に大きな進化をしたMySQLですが、バージョン番号を大きく飛ばした今回の MySQL 8.0 でも一層の進化をしています。進化の内容は MySQL Server Blog の記事で詳しく説明されているので、私もこれから少しずつ読もうと思います。
mysqlserverteam.com

 この Server Blog のエントリー、とってもとっても長い力作で、これを読むだけでMySQL8.0の進化の概要はざっと理解できそうなくらいです。が、長いと(更に英語だし)だんだん何を読んでいるのか分からなくなってしまうので、私はこういうときに「地図」を作ります。自分用に、ざっくり全て手打ちで作ったものなので、打ち間違い等あるかもしれませんが、こういうのが役に立つという方がいればと思い公開しておきます。枝のひとつひとつを興味ある順につぶしていくといった使い方をします。

f:id:sakaik:20180420010332p:plain


以下、MySQL8.0に関するよくありそうな質問と、それに対する独断と偏見を含む適当な回答例:

  • ひとつ前のメジャーバージョンは 5.7だったよね。なんで 今回 8.0?
    • 開発チームがそう決めたからだよ。大きく変わるので 5.8じゃなくて 6.0とかにしたいけど、6というバージョンは実はMySQLの歴史の中で一瞬現れたことがあるバージョンなんだ。混乱を避けるために飛ばして7にする?というのもアリだったんだろうけど、7は MySQL Cluster で使ってるからじゃぁ8だ、ということになったんだって。7を飛ばした理由は個人的にはこじつけっぽいなと感じているけど、まぁ結果として 5.7 の次に 5.8 ではなく下の数字を採用した 8.0 になるというのは美しくて楽しいかな、と個人的には感じているよ。
  • 8.0.11が出る直前の rc 版は 8.0.4-rc だったよね。5~10はどこに行ったの?
    • どこにも行ってないよ。ちゃんとリリースのノート*2にも書いてある。MySQL 8.0.5~8.0.10 は、Skipped version numbers だって。MySQL Workbench や Connectors、Router などの周辺ツールとバージョンを合わせるためだったみたい。
  • そういや RC(Release candidate)版って、8.0.3と8.0.4の2回出たよね。なんかあったの?
    • よく分からないのだけど、MySQLの開発ではそういうものみたい。5.7でも2回、5.6では3回のRC版がリリースされたんだよ。
  • MySQL 8.0 のオススメ、注目の機能は?
    • 使う人それぞれが何を大切にしているかによって変わるけど、個人的には GIS 機能に注目している。MyISAMじゃなくてInnoDBで使えるようになったんだ。仕様もこれまでの勝手実装ではなくOpen GISに準拠する形でしっかりと実装されているんだ。あと、準拠と言えば、標準SQLへの準拠も頑張っていて、Window関数やCTE(Common Table Expression;WITH句)などが実装されたので、ちゃんと勉強して使えるようになっておきたいね。
  • そういや MySQL って360日後に急にアクセスできなくなるんだよね?
    • 5.7で一瞬そんな仕様(パスワードの有効期限)が入ったけど、yoku0825 さんらの尽力によって開発チームも理解してくれて、すぐに元に戻ったんだよ。もう大丈夫。 それまで私は「日本を代表するyokuさん」と内心で呼んでいたのを、このことがあってからは「世界のyokuさん」と呼ぶように、心を改めたんだ。本人にはないしょだよ。
  • MySQL 8.0 ってなんて呼ぶの?
    • 普通に回答するなら「はちてんぜろ」だけど、「エイト」と呼んでいる人も多い印象。私も時により使い分けているけど「エイト」って呼ぶことが多いかな。ほらなんか、ツウっぽいじゃない。エイト。
  • 次のメジャーバージョンは 8.1になるの? 9.0 なの?
    • 鬼が笑うよ。
  • もっと情報が欲しいんだけど
    • マニュアル*3 読んで! 英語なので読むのに時間かかるよね。日本語で読めたらもっといいよね。だから、マニュアル読んだり試したりして自分が「へぇぇ」と思ったことを、ぜひみなさんも日本語で発信して欲しいのです。読んで助かる人がいるし、助かった人はまた今度は自分も発信をする、そんな情報提供の循環ができたら素敵だなって思います。


2018/04/20 22時修正:初出時、Window関数の説明で「WITH句など」と書いていましたが、WITH句はCTEのお話なので修正しました。@SugiTK さん、ご指摘ありがとうございました。