我正在建立一个速度至关重要的预测拨号程序。要拨打号码,我从表中提取客户信息并为pbx构建呼叫文件以执行操作。组织和优化大型表格
目前,我有每个地区代码表,我们在一个时间拨一个区号,但我们切换到一个模型,其中我们拨打此基础上跨越多个邮政编码地区。一些区号存在于多个邮政编码中。每张表格都有每月新增的数字,并通过与数百万个数字的拒收表格进行比较来清除。
所以我的问题是,我应该如何最有效地组织这些数据?
一个大表,似乎适得其反,因为我们正在谈论数百万擦除数据的记录。
我目前的推理线是维护用于导入和清理的区域码表,然后将清理过的记录复制到区域表格中,这是通过在区域代码表中搜索该区域中的邮政编码创建的。
我目前通过auto_incremented INT主键,唯一的电话号码和跟踪已经被呼叫的号码或处于拒收电话簿列表中的状态来索引这些表。在建立呼叫文件时,我将记录标记为排队,然后根据呼叫完成后的方式标记它,因此每次呼叫都会有一个搜索和两个更新。
搜索在地区代码表中查找特定状态。更新基于记录标识进行。
问题的肉是这样的:难道是更快的邮政编码来组织和状态查询,或让他们按区号主办,状态和邮政编码搜索?或者每次我们建立一个由地区代码表构建的地区时,最好是创建一个新表格?
原谅我,如果这似乎是一个愚蠢的问题,我一直在自学SQL,因为我一直在建设这个和数据库设计和性能的细微差别都有点超出了我的技能。
的表的总大小是200万行和生长。
200万行,为清晰起见编辑 – TaoJoannes 2012-04-27 17:03:21
对于2百万行,加入将会很慢,例如,当通过区号查找区域代码时,区域代码比较少(我假设您将通过不称呼标志进行过滤,也许可能按顺序排列)。 – 2012-05-01 23:44:29
一张大桌子可能是您的特定场景的好主意。在我自己的测试中,具有快速固态硬盘的优质服务器/台式机应该会给你带来好的结果。 – 2012-05-01 23:45:43