UTF8の利点:
-
ヘブライ語などのRTL言語を含むほとんどの言語をサポートします。
-
UTF8対応コンポーネント(JavaScript、Javaなど)にデータをインポート/エクスポートする場合、変換は必要ありません。
UTF8の短所:
-
非ASCII文字は、より複雑なエンコードスキームのため、エンコードとデコードに時間がかかります。
-
非ASCII文字は、1バイト(ASCII文字セットの最初の127文字にない文字)を使用して格納される可能性があるため、より多くのスペースを必要とします。
CHAR(10)
またはVARCHAR(10)
一部のUTF8文字を格納するには、フィールドに最大30バイトが必要な場合があります。 -
utf8_bin
以外の照合 並べ替え順序が文字エンコード順序に直接マップされないため、速度が低下し、一部のストアドプロシージャで変換が必要になります(変数のデフォルトはutf8_general_ci
であるため)。 照合)。 -
JOIN
が必要な場合 UTF8および非UTF8フィールドの場合、MySQLは SEVEREを課します パフォーマンスヒット。 1秒未満のクエリは、分かかる可能性があります。 結合されたフィールドが異なる文字セット/照合である場合。
結論:
非Latin1言語をサポートする必要がない場合、最大のパフォーマンスを達成したい場合、またはlatin1
を使用するテーブルがすでにある場合 、latin1
を選択します 。
それ以外の場合は、UTF8
を選択します 。