✅ utf8mb3 vs utf8mb4 对比
| 项目 | utf8mb3 | utf8mb4 | 
| 字节长度 | 最多 3 字节 | 最多 4 字节 | 
| Unicode 支持范围 | 支持基本多文种平面(BMP) | 支持所有 Unicode 字符(含 Emoji、特殊符号) | 
| 是否支持 Emoji | ❌ 不支持 | ✅ 完整支持 | 
| 是否为官方推荐 | ❌ MySQL 8 开始不推荐使用 | ✅ MySQL 8 默认字符集 | 
| 向后兼容性 | ✅ 可用于旧系统 | ✅ 完全兼容 utf8mb3的字符 | 
| 向前兼容性 | ❌ 不支持 utf8mb4 中 4 字节字符 | ✅ 完整支持旧 utf8mb3内容 | 
| 常见错误 | Incorrect string value | 很少出错(除非插入非法字符) | 
| MySQL 使用情况 | 老版本(≤ 5.7)默认字符集 | 新版本(≥ 8.0)默认字符集 | 
| 实际用途建议 | 仅限旧项目维持 | 所有新项目统一使用 | 
✅ utf8mb4推荐使用
| Collation | 含义解释 | 
| utf8mb4_0900_ai_ci | 默认推荐 ✅:不区分大小写、不区分重音,MySQL 8+ 默认 | 
| utf8mb4_0900_as_cs | 区分大小写 & 区分重音,适合严格匹配需求 | 
| utf8mb4_unicode_520_ci | 基于 Unicode 5.2 的 Unicode 规则,兼容性更好 | 
| utf8mb4_unicode_ci | 基于 Unicode 4.0 的旧版规则,已逐步被替代 | 
📌 推荐选择场景
| 使用场景 | 推荐 Collation | 原因 | 
| 通用系统(电商、博客等) | utf8mb4_0900_ai_ci | 兼顾性能与准确性,支持 Emoji 和多语言 | 
| 要严格区分大小写 | utf8mb4_0900_as_cs | 比如用户名、文件路径、密码等需区分场景 | 
| 老系统升级 | utf8mb4_unicode_520_ci | Unicode 5.2,修复了部分 unicode_ci的问题 | 
| 国际化多语言应用 | utf8mb4_0900_ai_ci | 全面支持重音、德语 ß、希腊语、俄语等字符 | 
| 数据库全文索引/搜索优化 | utf8mb4_0900_ai_ci | 通用语义排序友好,查询性能较好 | 
 
    如果这篇文章对你有用,可以关注本人微信公众号获取更多ヽ(^ω^)ノ  ~
