易君召
易君召
发布于 2026-10-23 / 3 阅读
0

MySQL8.0 字符集 utf8mb4排序规则推荐

✅ 通用首选:utf8mb4_0900_ai_ci(MySQL8.0 默认)MySQL

  • 含义:ai=accent-insensitive 不区分重音;ci=case-insensitive 不区分大小写

  • 基于 UCA 9.0 标准,Unicode 排序规则最新最准,支持 emoji、生僻字、多语言,绝大多数业务直接用这个MySQL

  • 适用场景:用户名、标题、内容、普通文本搜索(like、= 匹配忽略大小写、重音)

其他常用 0900 系列按需选择

排序规则

说明

适合场景

utf8mb4_0900_as_cs

as = 重音敏感,cs = 大小写敏感

账号、编码、密码明文(不推荐存明文)、区分大小写的唯一标识

utf8mb4_0900_as_ci

as = 重音敏感,ci = 大小写不敏感

中文为主,但是要区分 é/e 这类带符号字符

utf8mb4_0900_bin

二进制逐码点比较

严格二进制相等,大小写、重音全部敏感;唯一键、精确校验、哈希字符串

❌ 尽量不要再选(MySQL5.7 遗留)

  • utf8mb4_unicode_ci / utf8mb4_unicode_520_ci:老版本 UCA 标准,排序有缺陷

  • utf8mb4_general_ci:简化规则,排序不准,不推荐新项目MySQL

💡 中文小补充

0900 系列本身不专门适配中文拼音排序,如果业务需要按汉字拼音 ORDER BY,MySQL 官方没有内置拼音 collation,一般两种方案:

  1. 额外存拼音字段排序

  2. 应用层排序

建库示例

CREATE DATABASE demo
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_0900_ai_ci;

本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。

原文链接 https://www.yijunzhao.cn/archives/mysql-8-utf8mb4-charset-collation-recommendations

欢迎访问 小易撩挨踢

https://www.yijunzhao.cn/