有一段时间了,我已经使用phpMyAdmin来管理我的本地MySQL数据库。我开始接受的一件事是我的数据库的正确字符集。我已经确定UTF-8是兼容性最好的(因为我的XHTML模板是UTF-8),但有一点让我感到困惑的是我在phpMyAdmin界面中提供的UTF-8的各种选项?
我隔离的两个是:
所以我的问题是:MySQL中general
的{{1}}和unicode
变体有什么区别? (我来了解utf8
是不区分大小写的简写)
在这件事上,任何帮助都会非常感激。
答案 0 :(得分:2)
来自MySQL manual on Unicode Character Sets:
对于任何Unicode字符集,使用 _general_ci 排序规则执行的操作比 _unicode_ci 排序规则的操作更快。例如,与 utf8_unicode_ci 的比较相比, utf8_general_ci 整理的比较更快,但更不正确。原因是 utf8_unicode_ci 支持扩展等映射;也就是说,当一个字符与其他字符的组合相等时。例如,在德语和其他一些语言中,“
ß
”等于“ss
”。 utf8_unicode_ci 也支持收缩和可忽略的字符。 utf8_general_ci 是一种遗留的排序规则,不支持扩展,收缩或可忽略的字符。它只能在字符之间进行一对一的比较。
请参阅further information and examples的参考页面。
答案 1 :(得分:-2)
#@%!ing manual discusses this ...:)
其中一个问题是某些操作的速度和准确性。