【问题标题】:how does memcached improve on database-level caching?memcached 如何改进数据库级缓存?
【发布时间】:2013-06-20 03:13:23
【问题描述】:

我是memcached 的新手,但对数据库内部和系统编程相当熟悉,所以这对我来说似乎很奇怪。很明显,基于内存的解决方案比基于磁盘的解决方案要快,但是由于任何支持缓存的数据库都会更多地了解数据的结构,所以它不应该更好地了解如何有效地缓存它吗?

我看到了三种可能性:

  1. “使用memcached 部署的机器比数据库服务器通常拥有更多的RAM。”添加相同数量的内存会使解决方案的性能相似吗?
  2. “确保数据库中的 ACID 事务属性使这种加速难以匹配。”是否可以通过放宽数据库的事务保证以匹配缓存的保证来获得类似规模的加速?
  3. “将数据库查询平均分布在多台缓存机器上可以加快速度。”分片数据库会做同样的事情吗?

如果不是这些的组合,那么添加缓存层还能为表带来什么数据库无法实现的功能,为什么数据库供应商不/不能自己实现更好的缓存层?

【问题讨论】:

    标签: database performance memcached


    【解决方案1】:

    成功使用 memcached 与“数据库级缓存”无关。这几乎不是一个好主意。

    相反,您考虑要从数据库中获取的所有内容来构建“事物”,然后缓存该事物,以便下次不必这样做。

    此外,您可以缓存很多不是数据库的东西。在您的应用程序中构建或检索任何昂贵的东西。缓存它。

    如果数据库查询足够快,则不要缓存它。

    【讨论】:

      猜你喜欢
      • 2011-03-08
      • 1970-01-01
      • 2014-08-27
      • 2010-09-21
      • 1970-01-01
      • 2010-11-22
      • 1970-01-01
      • 2012-12-31
      • 2011-08-14
      相关资源
      最近更新 更多