MySQL の encoding

MySQL の utf8 は真のutf8じゃないよねって話。

MySQLのencodingをutf8からutf8mb4に変更して寿司ビール問題に対応する|TechRacho by BPS株式会社s

歴史的な理由で、MySQLのutf8文字セットはutf8mb4ではなくutf8mb3を参照しています。

これにより4バイト長UTF–8文字である絵文字(例, 🍣)をDBに登録できない。

MySQL 8.0.1 からは utf8mb4 がデフォルトに

MySQL 8.0.1 は utf8mb4 がデフォルトになったのであまりこのへんに関して気にすることはない。

同じく「Sushi = Beer ?! An introduction of UTF8 support in MySQL 8.0 | MySQL Server Blog」には2017年の時点でデフォルト文字セットutf8mb4に移行する構想が述べられており、その後MySQL 8.0.1からはデフォルト文字セットがutf8mb4になりました。

collation にかんしてはどういう設定にすべきかは一考の余地アリ。

MySQLのコレーションについては、8.0.1でutf8mb4_ja_0900_as_csを含む以下のコレーションが追加されました。

参考