utf8mb4_default
是什么?你在哪里看到的?
在MySQL 8.0之前,utf8mb4
的默认排序规则是utf8mb4_general_ci
。这个排序规则只逐字节比较,所以ss
和ß
不被认为是相等的。而大多数其他的utf8mb4
排序规则都认为它们是相等的。
在通用使用(与特定于西班牙语等的排序规则相对)中,下一个更好的排序规则是utf8mb4_unicode_ci
。它匹配了几年前编写的Unicode Collation Algorithm版本4.0。
然后是utf8mb4_unicode_520_ci
(Unicode 5.20),它处理更多事情时更"正确"。
当你使用MySQL 8.0时,将会有一个9.0版本的utf8mb4_0900_ai_ci
。
utf8_general_ci A=a=À=Á=Â=Ã=Ä=Å=à=á=â=ã=ä=å=Ā=ā=Ą=ą Aa ae az
utf8_unicode_ci A=a=ª=À=Á=Â=Ã=Ä=Å=à=á=â=ã=ä=å=Ā=ā=Ą=ą Aa ae az Æ=æ
utf8_unicode_520_ci A=a=ª=À=Á=Â=Ã=Ä=Å=à=á=â=ã=ä=å=Ā=ā=Ą=ą Aa ae=Æ=æ az
Æ
和æ
的3种不同处理方式。
Z
之后排序。)ae
相等。对于5.7版本,并且没有特定的语言要求,我会使用utf8mb4_unicode_520_ci
。
回到你关于“为什么”的问题。更改默认设置可能会对现有安装造成更多伤害而不是帮助。所以,我想设计者们比较保守。另一方面,8.0版本有很多重大变化,所以对于更改没有那么多的顾虑。因此,转向了utf8mb4_0900_ai_ci。
utf8mb4_unicode_520_ci
。我只有 utf8mb4_unicode_ci
和 utf8mb4_default
- 我找不到任何关于 utf8mb4_default
在上下文中是什么意思的描述。谢谢。 - Yevgeniy Afanasyevutf8mb4_default
,而是说utf8mb4
- “default”排序规则,这是一件愚蠢的事情,因为它并没有给你任何线索来确定哪个是默认值。而且我认为列表中有错误。请在bugs.mysql.com上针对Workbench提交错误报告。 - Rick JamesSHOW COLLATION LIKE 'utf8mb4%';
- Rick James
SHOW CREATE TABLE
命令以发现实际的“默认”是什么。我认为它会显示utf8mb4_general_ci
或者可能是utf8mb4_unicode_520_ci
。此外,这个默认值可能会随着 MySQL 版本的变化而改变。 - Rick James