memcached如何改进数据库级缓存?

时间:2013-06-20 03:13:23

标签: database performance memcached

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

我看到三种可能性:

  1. “使用memcached部署的计算机具有比数据库服务器通常更多的RAM。”添加相同数量的内存会使解决方案表现相似吗?
  2. “确保数据库中的ACID事务属性使这种加速难以匹配。”通过放宽数据库的事务保证以匹配缓存的事务保证,是否可以获得类似规模的加速?
  3. “在多个缓存机器之间平均分配数据库查询是允许加速的原因。”分片数据库会做同样的事吗?
  4. 如果它不是这些的组合,那么添加缓存层还会给数据库带来哪些数据库带来什么呢?为什么数据库供应商不能/不能自己实现更好的缓存层呢?

1 个答案:

答案 0 :(得分:1)

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

相反,你会想到你将从数据库中获得的所有东西,以构建一个“东西”,然后你缓存那个东西,这样你下次就不必这样做了。

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

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