MySQL是否处理单个utf-8字符键以及整数?

时间:2010-09-29 16:46:00

标签: mysql unicode utf-8 primary-key

我正在开发一个中文/日文学习网络应用程序,其中许多表格被这些语言的字符(“字形”)索引。

我想知道字形的整数代码点值是否比使用单个utf8字符(主键和索引)更好?

使用单个utf8字符非常有用,因为我可以在我正在使用的shell中看到unicode字符很好,这使得调试此应用程序的SQL查询更加容易。

理论上,MySQL会将单个utf8字符视为与mediumint(3字节)类似的唯一整数值​​...但我怀疑MySQL会将该列作为字符串处理。

由于MySQL将我的单个utf8字符视为字符串会不会出现性能问题?

您是否建议坚持索引和主键的整数代码点,并且可能使用CONVERT()或其他运算符来获取结果中的utf8字符?

1 个答案:

答案 0 :(得分:1)

MySQL会将UTF-8字符存储并索引为多字节字符串,是的。所以我希望整数是一个更快的密钥,尽管性能上的差异不太可能是显着的。

另一个可能的问题是,在MySQL 6.0之前,utf8字符集不支持Basic Multilingual Plane之外的字符(即每个字符限制为三个字节)。如果你想在补充表意平面中使用一些非常模糊的汉字,那就不好了。