Mysql ASCII与Uni​​code

时间:2009-09-20 12:52:22

标签: mysql unicode utf-8 ascii

快一点:

SELECT SELECT WHERE name LIKE'...'如果name列是ASCII而不是UTF-8,查询会更快吗?

谢谢!

2 个答案:

答案 0 :(得分:6)

不,不是真的。它无论如何都没有理由,它们都将比较几乎相同数量的数据,如果不是完全相同的数据量。

对于转换文本编码,可能会有一些非常次要的开销,但实际运行查询的开销不会产生任何影响。

答案 1 :(得分:6)

我已经完成了MySQL 5的一些字符集定时测试。列字符编码确实对速度有影响:如果列是UTF8,则管理文本的时间比ASCII或Latin1长约60%。无论结果是在与列相同的字符集中返回还是被转换,都是如此,并且它独立于查询字符集。只有列字符集有任何区别!

但是,在您将所有内容转换为ASCII之前,要意识到这60%的命中率仅在数据库的文本处理部分,并且通常行访问和索引操作需要几倍的微小差异。例如,在现代但廉价的Linux服务器上,我测量的差异仅为每兆字节文本16毫秒。

除了最关键的时间外,这种微小的差异非常值得实现一致的UTF-8工作流程。