|
|
说说我的看法
这个问题其实涉及范围很大,我一直没发言是想看看大家具体怎么想,我是这样考虑的。
1、计费详单入库之前,一般是在预处理阶段进行剔重处理,但实际情况是,因为涉及到一些迟到话单,跨文件剔重难免有遗漏,所以我们考虑在入库的时候,需要利用索引来限制重单;
2、我现在的计费库大概300多G(移动业务),保存计费详单的原则是3+1的原则,即保存三个月历史详单,一个月当前话单,同时欠费详单在库里长期保存;
3、计费详单采用按业务分表,如GSM语音、短信是为单独的表,大表采用分区,分区的原则,按月、按城市、按本地号码最后两位尾数,这样语音计费一个月近12000万条话单,约16G的数据量,
实际可能分成了 15个地市*100个尾数 =1500个分区表,每个分区表中大约6--10万条话单,这样分区表就不是很大了;
3、分区表中再建立本地号码、主叫区号、被叫区号、通话开始时间等的索引,相对来说入库速度就不会特别受索引的限制了;
4、索引和详单表在不同的表空间,同时表空间建立的时候考虑物理分开,这样提供读写效率;
5、前面有个老兄说到的“入库完毕,重新建立索引”,我觉得在我这里不现实,因为客服系统需要提供用户准实时话费的查询,基本上用户一个电话结束,1个小时以后需要查询到话费,所以如果第二天建索引,与这个业务冲突(系统优先为业务服务);
6、每天晚上定时统计当天详单有关的一些数据,将一些汇总信息插入到统计表中,这样若是临时需要统计一些数据,就不需要全从很大的详单表中全面统计了。
以上是大致想法,欢迎大家继续交流 |
|