排序规则 | 版本 | Unicode 标准 | 大小写敏感 | 重音敏感 | 中英文符号敏感 | 中文排序准确性 | 性能 | 特殊字符处理 | 典型应用场景 |
utf8mb4_bin gb18030_bin gbk_bin | 所有版本 | 二进制比较 | ✅ 是 | ✅ 是 | ✅ 是 | ❌ 差(按编码值) | 最快 | 严格区分符号(如 é ≠ e) | 密码存储、唯一标识符、二进制数据 |
utf8mb4_general_ci gb18030_chinese_ci gbk_chinese_ci | 所有版本 | 简化规则 | ❌ 否 | ❌ 否 | ✅ 是 | ❌ 差(拉丁优化) | 最快 | 部分字符处理不准确(如 ß = ss) | 兼容旧系统、简单文本(不推荐中文/多语言) |
utf8mb4_unicode_ci gb18030_unicode_520_ci | 5.7+ | Unicode 4.0 | ❌ 否 | ❌ 否 | ❌ 否 | ✅ 较好(拼音/部首) | 较慢 | 支持多语言(如德语、法语) | 多语言支持(中文、德语等) |
utf8mb4_0900_as_cs | 8.0+ | Unicode 9.0 | ✅ 是 | ✅ 是 | ✅ 是(可能) | ✅ 较好 | 优化后 | 严格区分大小写和重音 | 严格排序需求(如字典、法律文档) |
utf8mb4_0900_as_ci | 8.0+ | Unicode 9.0 | ❌ 否 | ✅ 是 | ❌ 否 | ✅ 较好 | 优化后 | 区分重音但不区分大小写(如 é ≠ e,但 A = a) | 需要区分重音的场景(如法语、西班牙语) |
utf8mb4_0900_ai_ci | 8.0+ | Unicode 9.0 | ❌ 否 | ❌ 否 | ❌ 否 | ✅ 最佳(扩展字符) | 优化后 | 支持表情符号、新 Unicode 字符 | MySQL 8.0+ 默认,推荐新项目 |
注意:字符编码和字符集不一致,导致左外连接时索引不生效(MySQL5.7案发)。
SELECT
*
FROM
asset_info ai
LEFT JOIN tag_asset ta ON ai.asset_no = ta.asset_no