1ヶ月ほど立ちましたが、MariaDB 11.3がGAされました。
https://mariadb.com/kb/en/mariadb-11-3-2-release-notes/
※debianパッケージで不具合があるようですが。。
11系のGAはまだですが、11系のリリースを少しピックアップしてみます。
(11.0)
・オプティマイザのコストが進化
(11.1)
・DATE関数、YEAR関数の左辺配置でもINDEXが利用されるよう修正
(11.2)
・オンラインDDLの修正
(11.3)
・リダイレクトの導入
・DATE_FORMAT関数にタイムゾーンの書式追加
ぱらっと見た限り、日付系の対応がちょこちょこはいっており、
タイムゾーン(datetime with timezone みたいな)に対応していくような動きですね。
次の11.4では、timestampの変更(intからunsignedへの変更、ドライバー影響を抑えるため)が予定されており、
2039年問題が伸びるので、それまでに新しい型の導入を進めていく感じになるのでしょうか。
このあたりは、MySQL側の動きにも注目ですね。
で、個人的にちょっと気になったのは、11.2でのオンラインDDLの修正でしょうか。
(参考)
https://mariadb.com/resources/blog/alter-table-is-now-universally-online/
MySQLではオンラインDDLというと、「LOCK=NONE」なもの、
つまりALTER中も並行してDMLを受け入れるというものです。
「LOCK=NONE」なDDLというと、基本的には「ALGORITHM=NOCOPY」のもの、
「INSTANT」や「INPLACE」のみでした。
11.2の対応では、「ALGORITHM=COPY」も「LOCK=NONE」で動作するようになりました。
すべての動作ではないようですが、参考ページによるとおおよそ以下のDDLが「LOCK=NONE」となったようです。
- カラムのデータ型変更
- カラムをNOT NULLに変更
- 制約のないカラムに対してDEFAULTの追加
- STOREDの生成列の追加
- チェック制約の追加
- 主キーの削除
- パーティションテーブルへの変更または削除
- システムバージョニングの追加
- オートインクリメントの追加
細かい制約もあるようなので、参考ページをちゃんと読んでもらえばと思います。
MySQLでは、
ということで、見比べてみると、拡張されたことがわかるかと思います。
とはいえ、DDLの適用コストは、INSTANTのような軽さはないので、油断はせずいてもらればと思います。
ちなみに、INSTANTの適用範囲は、以前書いたものから変わっていないようです。
※metaデータロックはかかりますのでご注意を。
また、magentadeskのv0.6.1が、MariaDB 11.3対応しています。
https://github.com/shigenobu/magentadesk
以上
コメントがあればどうぞ