真实世界使用memcached的网站

时间:2013-05-20 08:41:46

标签: mysql performance caching memcached

我正在尝试将memcached实施到我的网站中。

我有一个图像库,图像很少更改(删除等)。它们保存在数据库中。

现在我知道我可以缓存mysql返回的结果集,并且每次查看库的请求都会从那里检查缓存以查看它是否存在,并提供服务而不是再次访问数据库试。

我的问题是,如何使用这样的memcached比mysql的查询缓存更好,因为它们都是从内存中提供的?

另外,如果在memcached中存储网站页眉和页脚等内容的html字符串会略微提高性能吗?我认为这意味着服务器不需要从磁盘加载数据。

1 个答案:

答案 0 :(得分:1)

MySQL Query Cache在将其用作有效的对象级缓存系统时有两大限制。

  1. 每当更新表时(例如UPDATE,INSERT或DELETE),表的高速缓存都将失效。

  2. 查询缓存不能存在于不同的实例中,因此如果您在这种规模下运行,查询缓存几乎没有什么好处。

  3. 另一个注意事项(对某些人来说可能是显而易见的)是查询缓存只缓存确定性查询的结果 - 使用日期函数或任何类似的东西将导致始终存在数据库命中。

    IMO,Memcached的主要用例是它提供了可随应用程序扩展的内存对象缓存。部署起来非常简单的事实使得将其部署为数据层的缓存非常棒。

    在您的特定情况下,它似乎不保证使用memcached,因为您指定数据不会发生太大变化;并且在我看来,除了使用多个数据库服务器之外,它还有扩展的余地。

    有关MySQL查询缓存check this out的限制和特征的更全面的列表。