日期:2014-05-17  浏览次数:20601 次

请教大家一般如何处理存放请求这类的表?
一般情况下,会有程序向一个表里面插入请求数据,令一个程序轮询这个表读请求并且处理,处理完毕以后更新请求状态。
1.一般是不是使用请求表里面的id来更新请求状态?那id是不是要用Long来存放,能不能小点?
2.请求表一般每天都增加很多,到后面会有很多数据,应该如何优化?
3.每天自动分区如何实现?

------解决方案--------------------
如果是我设计,我会考虑轮询的程序读取并处理数据后,把请求数据保存到请求历史表,再从请求表删除。这样请求表就不会太大。
------解决方案--------------------
你的问题和我现在做的一个项目很相似,我做的是股票历史数据的转存,频率很低一分钟一次的更新各支股票的信息,即便这样,数据量也比你的大得多,我建议你可以这样设计,设计一张临时表tmpRequest用来转存当天的请求数据,如果你的请求数据是每天更新一次的话,如果是oracle就用job(或windows计划任务)选择一个固定的时间(如凌晨时候)清理一遍tmpRequest,每天一次,这样你就无需考虑优化的问题,另外要提醒的是,如果你坚持要向一张表中不断插入数据的话是不现实的,一张表中的数据越积越多将会影响数据库的效率,给您的查询或者是维护都带来不便!,
------解决方案--------------------
一般这种系统都采用中间件技术和消息队列机制吧,如果用表的话要定期清理。
------解决方案--------------------
1.一般是不是使用请求表里面的id来更新请求状态?那id是不是要用Long来存放,能不能小点? 

用number,oracle的long是二进制……

2.请求表一般每天都增加很多,到后面会有很多数据,应该如何优化? 

请求处理完后,转移到另一个表不行吗?

3.每天自动分区如何实现?

我想你用不到……