对数据库中的数据进行缓存是一次性全部取出还是按需取出效率高呢?
环境:Java + Tomcat + Oracle
我们公司的开发框架有个叫做dict的基础服务,用于把数据库中保存的状态码“翻译”成用于显示的状态。
比如:0-有效,1-过期,2-失效这样的。
而数据库中有两张表专门用于保存这种转换关系
我看到公司的实现是在tomcat启动时就把dict表中所有数据全部读出,然后缓存成全局的键值对。
但是我在思考一个问题,由于dict中的记录有至少一半是千年都不一定用得上的,所以如果写个类用于缓存dict键值对,调用get时检查记录是否存在,如果不存在就查数据库取得之后返回
这样就能只缓存用到过的数据了,但是这样却导致查库的次数增加了(因为每次只取一条记录)
所以我很纠结哪种实现性能更好些呢?希望各位赐教