mysql排序规则对比区别 utf8mb4_bin、utf8mb4_general_ci、utf8mb4_unicode_ci、utf8mb4_0900_ai_ci

排序规则版本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_cs8.0+Unicode 9.0✅ 是✅ 是✅ 是(可能)✅ 较好优化后严格区分大小写和重音严格排序需求(如字典、法律文档)
utf8mb4_0900_as_ci8.0+Unicode 9.0❌ 否✅ 是❌ 否✅ 较好优化后区分重音但不区分大小写(如 é ≠ e,但 A = a)需要区分重音的场景(如法语、西班牙语)
utf8mb4_0900_ai_ci8.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

utf8mb4_0900_ai_ciutf8mb4_general_ci 都是MySQL排序字符集之一。 utf8mb4_0900_ai_ci 是在MySQL 8.0.0版本后引入的一种排序规则。它基于Unicode Collation Algorithm,支持对多种语言进行排序,并考虑了不同语言的特殊规则和排序顺序。 utf8mb4_general_ci 则是MySQL较早版本中使用的排序规则。它对字符进行简单的二进制比较,不考虑各种语言的排序规则和特殊情况。相比于utf8mb4_0900_ai_ciutf8mb4_general_ci 能够提供更快的排序性能,但在某些特殊情况下可能会导致排序结果不符合用户的期望。 因此,如果你的数据库涉及到多种语言,并希望得到更准确的排序结果,推荐使用 utf8mb4_0900_ai_ci。如果你的数据库只涉及到简单的字符比较,并对排序性能有更高要求,可以选择 utf8mb4_general_ci。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MySQL常用排序规则utf8mb4_general_ciutf8mb4_unicode_ciutf8mb4_binutf8mb4_0900_ai_ci和存储字符集...](https://blog.csdn.net/munangs/article/details/126617226)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茅坑的小石头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值