一般的には、utf8_general_ciは速くよりutf8_unicode_ci内、あまり正しいです。
ここに違いがあります:
Unicode文字セットの場合、_general_ci照合を使用して実行される操作は、_unicode_ci照合の操作よりも高速です。たとえば、utf8_general_ci照合の比較は、utf8_unicode_ciの比較よりも高速ですが、少し正確ではありません。これは、utf8_unicode_ciが展開などのマッピングをサポートしているためです。つまり、1つの文字が他の文字の組み合わせと等しい場合。たとえば、ドイツ語およびその他のいくつかの言語では、「ß」は「ss」と同じです。utf8_unicode_ciは、縮約と無視できる文字もサポートしています。utf8_general_ciは、拡張、縮小、または無視できる文字をサポートしないレガシー照合です。文字間の比較は1対1しかできません。
引用元:http :
//dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html
詳細については、MySQLフォーラムの次の投稿をご覧ください。http:
//forums.mysql.com/read.php?103,187048,188748
utf8_binの場合:utf8_general_ciとutf8_unicode_ciはどちらも大文字と小文字を区別しない比較を実行します。対照的に、utf8_binは文字のバイナリ値を比較するため、(他の違いの中でも)大文字と小文字が区別されます。
utf8
、utf8mb4
完全なUTF-8サポートに代わりに使用してください。この人気のある質問に対する回答はこれに対処していないため、ここでコメントします。mathiasbynens.be/notes/mysql-utf8mb4