当前位置: 代码迷 >> Java Web开发 >> 考大家一个小疑点~(纯思想)
  详细解决方案

考大家一个小疑点~(纯思想)

热度:9438   发布时间:2013-02-25 21:15:21.0
考大家一个小问题~(纯思想)
问题是这样地~
为了简化假设现有一个产品表这个表有3个字段分别是

id endDate state

需求是:
1、通过分页来显示所有 state = '1' 的产品。('1'=发布状态, '0'=为下线状态)
2、在读取的过程中,首先需要通过判断 endDate 时间(其实是用现在的时间来比较下线的时间来判断是否过期),以此决定是否需要更改 state 的值。

---------------------------------------------------------

问题就出来了,首先我们先分析下: 
首先分页这不难,只要设置 setFirstResult 和 setMaxResults 就行了

但是更新要怎么办呢?一般情况下可以通过先 update...... 来跟新全部产品数据的 state 值后,再读取所有产品数据,但是如果产品表比较庞大,那这种方式显然不太人性,那么采用什么方法来更新 state 值比较好呢?

------解决方案--------------------------------------------------------
产品表比较庞大是有多庞大?

如果足够大,就按时间来进行分区,不是很大就按 年月 分区;真的很大就按 天 来分区。

指定分区的update,性能还是可以的。



如果数量级只有 百万以下,那么可以直接在endDate上建立索引;
有索引情况下,带上where条件,每天晚上凌晨2点批处理执行 update,效率不会太差的。
  相关解决方案