Mysql ASCII与Uni​​code

Dav*_*vid 2 mysql unicode ascii utf-8

快一点:

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

谢谢!

Mat*_*ley 6

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

转换文本编码可能会有一些非常小的开销,但实际运行查询的开销并没有什么.


Mtn*_*ark 6

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

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

在除了最关键的时间之外的所有情况下,这种微小的差异非常值得实现一致的UTF-8工作流程.