代码改变世界

MySQL缓存使用注意事项

2010-12-03 08:11 by Sun Yongyue, ... 阅读, ... 评论, 收藏, 编辑

MySQL使用了查询缓存(query cache)之后,在官方提供的一个benchmark实验中可以提升了238%以上的查询性能,而另一个实验则显示MySQL缓存的开销大概为不使用缓存时的13%。当然这个数据使用的benchmark环境有点老,机器有点过时,不过还是有方向上的参考意义。

 

有一篇文章在整理中《MySQL一些数据》,会比较详细地说明一些MySQL的状态和变量情况、作用和优化。当然也包含了以下小点。

 

MySQL的查询缓存是在SQL语句解析之前进行的。也就是说,MySQL语句如果字面上不一样,使用了不同的字符串表达,如不同的大小写方式、字符集不同等,都会导致MySQL不使用查询缓存。

 

缓存的内存使用可以由query_cache_size设置,该参数的单位是Byte而不是一些文章上所写的MB。如果不把该参数设置为0,即使用query_cache_type把缓存禁用,也不能释放该部分内存。

 

另外,之前做分片(sharding)时,对MySQL的分片做了一点考虑,当时有点疑惑(可查看《分片后的查询操作》),现在比较明朗一点。