一个表一天百分条数据,如何提高查询?
RT
------解决方案--------------------尽量不加索引,尽量用raid.
------解决方案--------------------分区表就大大提高你的性能,另外,这种数据应该只把最近或最常用的放在当前服务器上
其它数据全部挪走.
一亿数据一个非分区表,还没有raid,还要频繁查询,你还让人活吧?
------解决方案--------------------楼主的短信表和我们项目的通话记录表其实是一个意思
我们的通讯记录表一天也是几百万条记录
我们用的是oracle数据库。。使用表分区。。
根据手机号码的后面3位数。。建立1000个表分区进行查询
这样每次得到不同的号码三位就去不同的分表查询。。
就优化得差不多了。。
------解决方案--------------------楼主的情况最佳的作法是:
该表做分区表,理论上最多可以有1000个区. 查询条件中必须要分区列. 另外,这个最好要有raid,哪怕是raid5.
如果都作不到,那就把表中不常用的数据全部转移到其它备服务器,该服务器上只保留最新数据.
分区表需要企业版支持,如果不能分区,就拆表.
像那些月或周报表之类,凌晨跑作业来生成.
------解决方案--------------------我也有这个同样的问题,现在有个表,每三秒就会有N条记录(至少大于百次请求),写入一个表中,一天下来那个表的量可想而知.
我一直很担心查询的速度,因为软件还没有正式发布,所以还没有具体看到查询速度有什么样的变化,由于是软件自带库,所以还
用的是ACCESS :( ,我顺便把我的这个问题,也提下,大家给个好点的解决方案!
------解决方案--------------------首先,查询和插入分开
其次,插入的表上尽量不要索引,
此表单独放在一个数据库文件组中,此文件单独放在一个硬盘上以提高读写的效率
------解决方案--------------------分区加local index
storage参数要注意调整下
历史数据要有清理job
应用中存在统计的话,考虑加mview
不要被数据量吓倒,我们一个系统上,现在每天近千万的数据,一样跑的挺好
------解决方案--------------------建立分区表
之前一个项目在国内某通讯公司,记流水的一张表,一天一个分区。
------解决方案--------------------以周建分区表可以吧,千万级的数据查询应该没什么影响(当然要索引)
对需要统计的信息在服务器空闲时(比如凌晨)进行统计,并存储对应的统计信息,
在客户需要统计时可以直接调用或在已有统计信息的基础上再进行统计
(大体思想就这样的吧)
------解决方案--------------------mark,能多分几个表,就多分几个表。