java web 碰到根据条件筛选缓存数据时,你怎么解决,或者有更好方案。

aolin 发布于 2015/07/09 10:50
阅读 1K+
收藏 0
我最近做了一个项目,主要用来查询数据的,大部分都是根据 开始日期   结束日期  来查询数据的,现在的问题是,我查询的数据表里面的数据太多,并且查询的表与表各种关联,导致查询的慢(我用的是存储过程SQL Server),我想问一下 能不能将数据先缓存下来,我先查询缓存,缓存没有的话 再查询数据库,再放入缓存。

问题:

    1、 由于页面传来的日期不同,我怎么去根据不同日期查询缓存呢?

    2、 还有就是 我缓存数据的时候应该缓存多大日期的数据 以方面查询缓存呢?


如果你有更好的意见也可以说一下 我借鉴一下  谢谢

以下是问题补充:

@aolin:我在网上 看到有人说 将数据 查询出来(查询出来的数据方位比较大,肯定在查询条件范围内) 放入一个临时文件中,当页面查询的时候直接读取临时文件进行数据筛选 (2015/07/09 10:57)
加载中
0
s
superJcode
考虑优化存储过程。可以考虑同库分表,或者分库分表,2,更换数据库如redis,
0
lijegd
lijegd

key:起始时间:结束时间:当面页;value:结果集,表关联的部分考虑修改关系,尽可能少关联.可以多点冗余数据


0
alexgaoyh
alexgaoyh

更改表结构设计,实在不行,稍微多一点冗余数据也可以理解。

可以把日期当做key,符合条件的ids为value。

确定热点数据的范围,将其放入缓存中,非热点数据根据业务的不同进行不同的处理。

0
指键
指键
优化的话, 如果 存储过程优化不了了,你就修改表结构吧。
返回顶部
顶部