1

听起来可能很愚蠢......
假设缓存中有 1,00,000 条记录,键为someId.
现在数据库有 1,00,000 条记录,主键为someId.

我的问题是在这种情况下什么会更快?where使用子句访问缓存或访问数据库?
假设使用的缓存是 EHCache,DB 是 MySql。

4

1 回答 1

2

缓存是本地的,位于 RAM 中,db 是远程的,数据位于磁盘中(大多数情况下)。关键区别!

查看每个人都应该知道的数字(幻灯片 #13)您正在查看大约 100-1000ns(从缓存中读取数据)VS 20000 ns(通过 1Gbps 网络发送 2Kb)。因此,即使不包括磁盘读取,差异也已经是 ~20 倍。如果您考虑磁盘读取(10 000 000 ns),则差异变为 10 000x。

但这些都是理论计算;你需要自己测量。

于 2013-03-11T11:40:36.147 回答