0

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

我看到了三种可能性:

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

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

4

1 回答 1

1

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

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

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

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

于 2013-06-21T02:59:03.083 回答