我是 的新手memcached
,但对数据库内部结构和系统编程相当熟悉,所以这对我来说似乎很奇怪。很明显,基于内存的解决方案比基于磁盘的解决方案要快,但是由于任何支持缓存的数据库都会更多地了解数据的结构,所以它不应该更好地了解如何有效地缓存它吗?
我看到了三种可能性:
- “部署的机器
memcached
比数据库服务器通常拥有更多的 RAM。” 添加相同数量的内存会使解决方案的性能相似吗? - “确保数据库中的 ACID 事务属性使得这种加速难以匹敌。” 是否可以通过放松数据库的事务保证以匹配缓存的保证来获得类似规模的加速?
- “在多台缓存机器上平均分配数据库查询是加速的原因。” 分片数据库会做同样的事情吗?
如果不是这些的组合,那么添加缓存层会给表带来什么数据库不能带来的更多好处,为什么数据库供应商不能/不能自己实现更好的缓存层?