memcached 和MySQL 的query cache 相比,有什么优缺点?

Posted 四猿外

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了memcached 和MySQL 的query cache 相比,有什么优缺点?相关的知识,希望对你有一定的参考价值。

把memcached 引入应用中,还是需要不少工作量的。mysql 有个使用方便的query cache,可以自动地缓存SQL 查询的结果, 被缓存的SQL 查询可以被反复地快速执行。Memcached 与之相比,怎么样呢?MySQL 的query cache 是集中式的,连接到该query cache 的MySQL 服务器都会受益。

  • 当您修改表时,MySQL 的query cache 会立刻被刷新(flush)。存储一个memcached item 只需要很少的时间,但是当写操作很频繁时,MySQL的query cache 会经常让所有缓存数据都失效。

  • 在多核CPU 上,MySQL 的query cache 会遇到扩展问题(scalability issues)。在多核CPU 上,query cache 会增加一个全局锁(global lock), 由于需要刷新更多的缓存数据,速度会变得更慢。

  • 在MySQL 的query cache 中,我们是不能存储任意的数据的(只能是SQL 查询结果)。而利用memcached,我们可以搭建出各种高效的缓存。比如,可以执行多个独立的查询,构建出一个用户对象(user object),然后将用户对象缓存到memcached 中。而query cache 是SQL 语句级别的,不可能
    做到这一点。在小的网站中,query cache 会有所帮助,但随着网站规模的增加,query cache 的弊将大于利。

  • query cache 能够利用的内存容量受到MySQL 服务器空闲内存空间的限制。给数据库服务器增加更多的内存来缓存数据,固然是很好的。但是,有了memcached,只要您有空闲的内存,都可以用来增加memcached 集群的规模,然后您就可以缓存更多的数据。

以上是关于memcached 和MySQL 的query cache 相比,有什么优缺点?的主要内容,如果未能解决你的问题,请参考以下文章

C语言mysql_query()插入数据库,中文乱码问题解决

php hash算法实现memcached分布式

MySql Query和asp.net c#之间的结果差异

Memcached快递上手之C#

Memcache + MySQL + HandlerSocket

php面试题 memcache和redis的区别