我正在开发一个中文/日文学习网络应用程序,其中许多表格被这些语言的字符(“字形”)索引。
我想知道字形的整数代码点值是否比使用单个utf8字符(主键和索引)更好?
使用单个utf8字符非常有用,因为我可以在我正在使用的shell中看到unicode字符很好,这使得调试此应用程序的SQL查询更加容易。
理论上,MySQL会将单个utf8字符视为与mediumint(3字节)类似的唯一整数值...但我怀疑MySQL会将该列作为字符串处理。
由于MySQL将我的单个utf8字符视为字符串会不会出现性能问题?
您是否建议坚持索引和主键的整数代码点,并且可能使用CONVERT()或其他运算符来获取结果中的utf8字符?
答案 0 :(得分:1)
MySQL会将UTF-8字符存储并索引为多字节字符串,是的。所以我希望整数是一个更快的密钥,尽管性能上的差异不太可能是显着的。
另一个可能的问题是,在MySQL 6.0之前,utf8字符集不支持Basic Multilingual Plane之外的字符(即每个字符限制为三个字节)。如果你想在补充表意平面中使用一些非常模糊的汉字,那就不好了。