对于带有PHP的MySQL,最好的排序规则是什么?[已关闭]
我想知道对于一个一般网站来说,MySQL中是否有“最佳”排序选择,您不能100%确定将要输入的内容?我知道所有的编码都应该是相同的,比如MySQL,Apache,HTML和PHP内部的任何东西。
过去,我将PHP设置为以“UTF-8”输出,但是这在MySQL中与哪种排序规则匹配?我认为它是UTF-8之一,但我使用过,和以前。utf8_unicode_ci
utf8_general_ci
utf8_bin
我想知道对于一个一般网站来说,MySQL中是否有“最佳”排序选择,您不能100%确定将要输入的内容?我知道所有的编码都应该是相同的,比如MySQL,Apache,HTML和PHP内部的任何东西。
过去,我将PHP设置为以“UTF-8”输出,但是这在MySQL中与哪种排序规则匹配?我认为它是UTF-8之一,但我使用过,和以前。utf8_unicode_ci
utf8_general_ci
utf8_bin
主要区别在于排序准确性(比较语言中的字符时)和性能。唯一的特殊是utf8_bin用于比较二进制格式的字符。
utf8_general_ci
比 快一些,但不太准确(用于排序)。特定语言 utf8 编码(如 )包含其他语言规则,这些规则使它们成为这些语言最准确的排序方式。大多数时候,我使用(我更喜欢准确性而不是小的性能改进),除非我有充分的理由更喜欢特定的语言。utf8_unicode_ci
utf8_swedish_ci
utf8_unicode_ci
您可以在MySQL手册上阅读有关特定Unicode字符集的更多信息 - http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html
实际上,您可能希望使用 或 。utf8_unicode_ci
utf8_general_ci
utf8_general_ci
通过去除所有重音符号并像 ASCII 一样进行排序utf8_unicode_ci
使用 Unicode 排序顺序,因此它可以在更多语言中正确排序但是,如果您仅使用它来存储英语文本,则这些文本应该不会有所不同。