在MySQL中,我应该选择哪种排序规则?

在MySQL中,我应该选择哪种排序规则?,mysql,collation,Mysql,Collation,当我通过phpMyAdmin创建一个新的MySQL数据库时,我可以选择排序规则(例如-default、armscii8、ascii……和UTF-8)。我知道的是UTF-8,因为我总是在HTML源代码中看到它。但是默认的排序规则是什么?这些选项之间的区别是什么?我应该使用哪一个?排序规则实际上不是默认的,它将默认排序规则作为第一选择 我们讨论的是,或者数据库将在其文本类型中使用的字符集。您的默认选项通常基于区域设置,因此除非您计划全球化,否则这通常是非常积极的 排序规则还确定大小写和重音敏感度(即

当我通过phpMyAdmin创建一个新的MySQL数据库时,我可以选择排序规则(例如-default、armscii8、ascii……和UTF-8)。我知道的是UTF-8,因为我总是在HTML源代码中看到它。但是默认的排序规则是什么?这些选项之间的区别是什么?我应该使用哪一个?

排序规则实际上不是默认的,它将默认排序规则作为第一选择


我们讨论的是,或者数据库将在其文本类型中使用的字符集。您的默认选项通常基于区域设置,因此除非您计划全球化,否则这通常是非常积极的


排序规则还确定大小写和重音敏感度(即,-Is'Big'=='Big'?对于CI,它是)。检查所有选项。

排序规则告诉数据库如何执行字符串匹配和排序。它应该匹配你的字符集

如果使用UTF-8,则排序规则应为utf8\u general\u ci。这将按Unicode顺序排序(不区分大小写),适用于大多数语言。它还保留ASCII和拉丁文1顺序


默认的排序规则通常是拉丁文1。

简短回答:在MySql和MariaDB中处理排序规则时,始终使用
utf8mb4
(特别是
utf8mb4\u unicode\u ci

长答覆:

MySQL的utf8编码命名很笨拙,因为它不同于正确的UTF-8编码。它不提供完全的Unicode支持,这可能导致数据丢失或安全漏洞

幸运的是,MySQL 5.5.3(2010年初发布)引入了一种称为utf8mb4的新编码,它映射到适当的UTF-8,因此完全支持Unicode

请在此处阅读全文:


至于要选择哪种特定的
utf8mb
,请选择
utf8mb4\u unicode\u ci
,以便始终正确处理排序,并将性能缺陷降至最低/不明显。请参阅此处的更多详细信息:

UTF-8如何?我看到wordpress使用UTF-8?我应该使用UTF-8吗?UTF-8是Unicode。如果你不在讲英语的国家,那么使用它是一个很好的选择。我明白了。我们的项目是针对我们和全世界的,所以我认为如果我们使用UTF-8会更好,对吗?是的。这绝对是一个安全的排序。“您的默认选项通常基于区域设置,因此除非您计划全球化,否则这通常是非常积极的。”不能让这种情况发生。他说的是phpMyAdmin,所以是网站。万维网如何不全球化??例如,如果您希望能够显示汉字,则区域设置通常不正常。确保您使用Unicode,即使您在英语地区。您的访客可能来自不同的国家,如果您可以显示他们的姓名,那就太好了。如果您想更准确,请使用utf8\U unicode\U ci。请参考wordpress codex上的unicode\u general\u ci:不要使用任何utf8排序规则。它们最多只能存储3个字节代码点。正确的UTF-8称为utf8mb4,它最多允许4个字节,因此包含emojis@user1318499你能把你的评论转换成一个答案并给出更多细节吗?我现在已经忘记了大部分内容,所以我没有信心写更多的东西,但是如果你想自己把它变成一个答案,所有的信息都应该在我的评论中的链接中。