一般的に、 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フォーラムの次の投稿をお読みください。
utf8_binの場合:両方の utf8_general_ci およびutf8_unicode_ci 大文字と小文字を区別しない比較を実行します。対照的に、utf8_binでは大文字と小文字が区別されます (他の違いの中でも)文字のバイナリ値を比較するためです。