锁定老帖子 主题:3亿数据快速检索实现
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-23
最后修改:2009-05-30
1 3亿个手机号码,并且每个号码20个左右的属性例:地区,订阅等信息。 2 在最短的时候内select出来(5分钟,10分钟)[最重要] 3 允许更新。对这些号码进行发送信息后,状态改变。[可以让他慢慢更新] 和几个同事讨论了一下,具体要注意以下几点: 1 如果发送下去状态改变,但是只发送一半,但状态改变了如何办? 2 如果多个产品线一起下发,状态会不会混乱。 解决以上第二个问题,决定采用,队列等待的方式。第一个问题没想到好的解决办法,回滚也想过了,但感觉不是很现实! 解决方案: 经过实验500w条的数据在用plsql直接select,只需要0.2秒,所以总体采用分表的方式,每500w条分一个表,然后同时查询! 但总感觉不是很好,抛砖引玉(真的很砖 )。不知道大家有没有更好的解决方案! -----------------------------------------重新描述一下需求------------------------------- 很多人说需求不是很的清楚,这里重新整理了一下! 不过要注意的是数据库里已经有3亿个手机基数了! 一. 号码入库。 不定期会有新的号码需要入库,入库需要记录号码的常规属性,如:手机号,省份,城市,入库时间,手机卡类型,是否支持彩信,号码来源情况等。 二. 入库手机号源文件管理 入库手机号源文件要以文件形式保存在服务器上。 三. 按需要提取号码(最关键部分) 要按照需求提取所需的号码。 例如: 提号要求: 1.此号码非黑名单用户。 2.此号码为的订购和退订用户。 3.此号码2个月内没有活动。 4.省份要求:辽宁,云南,广东 5.号段要求:137和138和139号段 6.数量要求:每个省10w 7.是否支持彩信:是(是,否,忽略三种情况) …… 最后,符合条件的号码,按照固定格式(每个手机号占一行),形成文本文件,将此文件测试号码,是否需要状态报告等信息形成最终可发送文件并提供下载功能,同时记录本次提取信息(发送时间,发送标识等) 注:文件格式如下: 139***85185#09#0 139***71283 139***33190 第1列:手机号 第2列:产品类型(#09) 第3列:是否需要状态报告(#0) 四. 统计功能 一.号码情况统计 1.统计当前号码总量。 2.按照2个基本要求,统计现在库中可以使用的号码数量。 注:统计需要显示,全国总量,各省总量,各省省会总量,各省去除省会总量,各省7天未下发总量(省会与其他城市分开显示),各省可以发送总量(省会与其他城市分开显示,所以单独列出来)。 二.发送产品统计 1.按时间段、业务线等统计发送产品的情况,如:发送时间,最终发送文件等 五. 黑名单及特殊号码管理 1. 添加黑名单 2. 去除黑名单 3. 过滤黑名单 4. 查询黑名单 以上除黑名单外都是迫切需要的,黑名单功能可以以后完善。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-05-24
我觉得索引表是个很好的办法!
|
|
返回顶楼 | |
发表时间:2009-05-24
试试数据的hash 分块根据某几位的hash值决定数据所在的DB...3亿对发号地区.对发号时间多次规范之后....
|
|
返回顶楼 | |
发表时间:2009-05-24
按照我们的方案,大批量的查是没啥问题!但是大批量的更新非常成问题!
速度实在是难以想象!每更新一条就要开启关闭一次事物! 所以还是想听听大家的意见! |
|
返回顶楼 | |
发表时间:2009-05-24
天机老人 写道 按照我们的方案,大批量的查是没啥问题!但是大批量的更新非常成问题!
速度实在是难以想象!每更新一条就要开启关闭一次事物! 所以还是想听听大家的意见! 汉 你去查查文档手册,里面有批量更新的方法。。。。 |
|
返回顶楼 | |
发表时间:2009-05-24
laiseeme 写道 天机老人 写道 按照我们的方案,大批量的查是没啥问题!但是大批量的更新非常成问题!
速度实在是难以想象!每更新一条就要开启关闭一次事物! 所以还是想听听大家的意见! 汉 你去查查文档手册,里面有批量更新的方法。。。。 好的谢谢! |
|
返回顶楼 | |
发表时间:2009-05-24
如果你真的用文档手册里面的批量提交方法去做,3亿条数据会让你的数据库down下来,因为你的数据库没足够的回滚段。
应该分批提交 特别是给这些号码发送信息的时候,我觉得更应该在收到短信网关回执的时候update一条的,否则批量update,如果其中发生什么问题导致回滚了,程序重启后继续处理,那时就会有客户收到重复的短信了 |
|
返回顶楼 | |
发表时间:2009-05-24
手册不就是让你分批么?
比如100条100条的update。。。 |
|
返回顶楼 | |
发表时间:2009-05-24
最后修改:2009-05-24
是不能分批
交互一次update,这个没有什么好偷懒的 |
|
返回顶楼 | |
发表时间:2009-05-24
分批查分批提交吧……
|
|
返回顶楼 | |