Sự khác biệt chính là độ chính xác của việc sắp xếp (khi so sánh các ký tự trong ngôn ngữ) và hiệu suất. Đặc biệt duy nhất là utf8_bin dùng để so sánh các ký tự ở định dạng nhị phân.
utf8_general_ci
nhanh hơn một chút so với utf8_unicode_ci
, nhưng kém chính xác hơn (để phân loại). Mã hóa utf8 ngôn ngữ cụ thể (chẳng hạn như utf8_swedish_ci
) chứa các quy tắc ngôn ngữ bổ sung giúp chúng sắp xếp chính xác nhất cho các ngôn ngữ đó. Hầu hết thời gian tôi sử dụng utf8_unicode_ci
(Tôi thích độ chính xác hơn những cải thiện hiệu suất nhỏ), trừ khi tôi có lý do chính đáng để thích một ngôn ngữ cụ thể.
Bạn có thể đọc thêm về các bộ ký tự unicode cụ thể trên hướng dẫn sử dụng MySQL - http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html