关于分页查询结果的缓存问题

11-03-03 liam
大家好。

在JiveJdon中的分页查询用到了JdonFramework的PageIteratorSolver类。

在PageIteratorSolver类中调用BlockStrategy类对查询结果(model的key的集合)进行了缓存处理。

我的疑问是这里为什么只缓存实体的key的集合?

只是缓存实体的key的集合,而不缓存具体的实体集合数据,这跟直接用查询条件去数据库查询相比,

所带来的性能提升有多大?意义何在?

望指点。

    

banq
2011-03-03 14:12
你这个问题以前已经很多人问过,可查以前帖子,为证明这个方法适用性,Hibernate的批量查询启用二级缓存的话,也是用这个原理,先查key主键集合,再根据主键到缓存里找对应的值,有noSQL影子在里面。

SpeedVan
2011-03-03 21:34
其实可以这么说吧,批量查找若果是不分页的,当然每次查找都全部加载为好,但问题是分页可以说是系统的必须技术了。那么这么多结果,只显示一部分,却要全部加载是不合理的。试想,第一页就找到想要的结果了,却要系统加载所有数据(如帖子,帖子是日积月累的,当达到几百页的时候,全部加载适合?)。缓存KEY目的就在于,缓存结果,想看那部分就再加载那部分,与游戏中大地图类似。(因为key是实体的唯一标识,所以得到key就相当于得到实体,想什么时候加载就什么时候加载)

猜你喜欢