主な違いは、並べ替えの精度(言語の文字を比較する場合)とパフォーマンスです。唯一の特別なものは、バイナリ形式の文字を比較するためのutf8_binです。
utf8_general_ci
utf8_unicode_ci
よりもいくらか高速です 、ただし精度は低くなります(並べ替え用)。 特定の言語のutf8エンコーディング (utf8_swedish_ci
など )追加の言語ルールが含まれているため、これらの言語を最も正確に並べ替えることができます。ほとんどの場合、私はutf8_unicode_ci
を使用します (特定の言語を好む正当な理由がない限り、パフォーマンスのわずかな改善よりも精度を優先します。
MySQLマニュアルで特定のUnicode文字セットの詳細を読むことができます-