utfmb4
文字セットには、次の特性があります:
BMP および補助文字をサポートします。
マルチバイト文字ごとに最大 4 バイトが必要です。
utf8mb4
は、BMP 文字のみをサポートし、文字当たり最大 3 バイトを使用する utf8mb3
文字セットと対比しています:
BMP 文字の場合、
utf8mb4
とutf8mb3
のストレージ特性は同じです: 同じコード値、同じエンコーディング、同じ長さ。補助文字の場合、
utf8mb4
ではそれを格納するために 4 バイトが必要ですが、utf8mb3
では文字を格納できません。utf8mb3
カラムをutf8mb4
に変換する場合、補助文字がないため、変換の心配は必要ありません。
utf8mb4
は utf8mb3
のスーパーセットであるため、次の連結などの操作の場合、結果には文字セット utf8mb4
と utf8mb4_col
の照合順序が含まれます:
SELECT CONCAT(utf8mb3_col, utf8mb4_col);
同様に、次の WHERE
句内の比較は、utf8mb4_col
の照合順序に従って行われます。
SELECT * FROM utf8mb3_tbl, utf8mb4_tbl
WHERE utf8mb3_tbl.utf8mb3_col = utf8mb4_tbl.utf8mb4_col;
マルチバイト文字セットに関連するデータ型の記憶域の詳細は、文字列型の格納要件 を参照してください。