用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2410|回复: 4
收起左侧

大数据库缓存问题

[复制链接]
发表于 2011-6-14 12:08:58 | 显示全部楼层 |阅读模式
本帖最后由 xushre 于 2011-6-14 12:09 编辑

我有一个函数,用于更新整个数据库里面的内容,但每天只需要一次,所以我想问问大家都有什么好方法没有!
发表于 2011-6-14 12:10:15 | 显示全部楼层
每天只一次 还需要缓存做什么呢?
 楼主| 发表于 2011-6-14 12:17:38 | 显示全部楼层
要啊,因为需要从数据库里面调用当天之前的内容啊。我不想再去查询数据库,因为数据库每天都会有大量的内容录入,查询这些,而且主机的反映有点慢,所以一定要缓存才好啊
发表于 2011-6-14 17:03:07 | 显示全部楼层
你的业务场景是什么样的? 你要查询的东西之间关系是什么样啊?

 楼主| 发表于 2011-6-14 17:15:20 | 显示全部楼层
现在主要有两个表
   pact|合同    yymm|发行计划

现在要做的就是发行计划,里面有字段关联
pact.id == yymm.pid
SQL的语句是这样的:
SELECT `xh_yyyymm`.`day`,`xh_yyyymm`.`abolish`,`xh_pact`.`id`,`xh_pact`.`mid`,`xh_pact`.`aid`,`xh_pact`.`customer`,`xh_pact`.`contact`,`xh_pact`.`phone`,`xh_pact`.`section`,`xh_pact`.`norms`,`xh_pact`.`fixed`,`xh_pact`.`cost`,`xh_pact`.`frequ`,`xh_pact`.`rental`,`xh_pact`.`title`,`xh_pact`.`contents`,`xh_pact`.`remark`,`xh_pact`.`status`,`xh_pact`.`author`,`xh_pact`.`indate` FROM `xh_yyyymm` INNER JOIN `xh_pact` ON `xh_yyyymm`.`pid`=`xh_pact`.`id` WHERE `xh_yyyymm`.`abolish`!='1' AND (`xh_pact`.`status` IN ('1','3')) AND `xh_yyyymm`.`day` = '2011-06-14' ORDER BY `xh_pact`.`mid`,`xh_pact`.`section


现在每天的数据大概在500条左右,但是由于会有跨时段查询,比如2011-06-01至2011-07-01,这样的话数据就会超过15000条(甚至一年的时间段),而且是比较平凡的查询,并且同时可能会出现大量的新数据入库,所以有时数据库会非常慢(但还没有遇到卡死)。所以我想用缓存来处理一下,但数据有随时会变动(麻烦就在这),一般情况下是缓存一条SQL指令,但这个系统明显是不可以那样做的,因为这个系统是与广告的发行同步的,如果缓存后不能看到及时更新的网站,会出严重的经济问题。

本版积分规则