对于带有PHP的MySQL,最好的排序规则是什么?[已关闭]

2022-08-30 05:47:15

我想知道对于一个一般网站来说,MySQL中是否有“最佳”排序选择,您不能100%确定将要输入的内容?我知道所有的编码都应该是相同的,比如MySQL,Apache,HTML和PHP内部的任何东西。

过去,我将PHP设置为以“UTF-8”输出,但是这在MySQL中与哪种排序规则匹配?我认为它是UTF-8之一,但我使用过,和以前。utf8_unicode_ciutf8_general_ciutf8_bin


答案 1

主要区别在于排序准确性(比较语言中的字符时)和性能。唯一的特殊是utf8_bin用于比较二进制格式的字符。

utf8_general_ci比 快一些,但不太准确(用于排序)。特定语言 utf8 编码(如 )包含其他语言规则,这些规则使它们成为这些语言最准确的排序方式。大多数时候,我使用(我更喜欢准确性而不是小的性能改进),除非我有充分的理由更喜欢特定的语言。utf8_unicode_ciutf8_swedish_ciutf8_unicode_ci

您可以在MySQL手册上阅读有关特定Unicode字符集的更多信息 - http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html


答案 2

实际上,您可能希望使用 或 。utf8_unicode_ciutf8_general_ci

  • utf8_general_ci通过去除所有重音符号并像 ASCII 一样进行排序
  • utf8_unicode_ci使用 Unicode 排序顺序,因此它可以在更多语言中正确排序

但是,如果您仅使用它来存储英语文本,则这些文本应该不会有所不同。


推荐