【发布时间】:2017-03-25 12:26:30
【问题描述】:
在我 10 年的经验中,我们默认使用 Oracle 或 SQL Server 配置的 RDBMS。从未调整默认禁用的结果缓存(至少在 oracle 中)。我一直看到使用应用程序级别的缓存选项,如 ehcache/memcache/redis 等作为缓存解决方案。
问题 - 如果我在数据库服务器上有可用的内存带宽,无论我是否面临任何性能问题,主动使用结果缓存(即数据库级别)不是一个很好的选择吗?
有了这个查询结果,select * from employee where department = 'Finance' 将始终与财务部门相对应地被缓存。
我的问题是,如果硬件可以通过 LRU 或根据特定要求的适当算法来支持它,为什么不使用 DB 级缓存呢? 在我需要创建密钥的应用程序级缓存中,将其部署(如 memcached)作为单独的服务器?
【问题讨论】:
-
我的一般规则:不要缓存缓存。数据库将进行各种缓存;很少需要添加另一层缓存。
标签: java web-applications memcached ehcache rdbms