Като цяло, utf8_general_ci е по-бърз от utf8_unicode_ci , но по-малко правилно.
Ето разликата:
За всеки набор от символи в Unicode, операциите, извършени чрез съпоставяне _general_ci, са по-бързи от тези за съпоставяне _unicode_ci . Например, сравненията за съпоставянето utf8_general_ci са по-бързи, но малко по-малко коректни, отколкото сравненията за utf8_unicode_ci. Причината за това е, че utf8_unicode_ci поддържа съпоставяния като разширения; тоест, когато един знак се сравнява като равен с комбинации от други знаци. Например на немски и някои други езици „ß“ е равно на „ss“. utf8_unicode_ci също поддържа свивания и игнорирани знаци. utf8_general_ci е наследено съпоставяне, което не поддържа разширения, свивания или игнорирани знаци. Може да прави само едно към едно сравнения между героите.
Цитат от: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 е чувствителен към главни букви (наред с другите разлики), защото сравнява двоичните стойности на знаците.