名单到了千万、上亿,Excel 和单机数据库会在同一类地方失败:导入还能忍,查询和并发写入不行。值守人员不会等 30 秒看一个号在不在库里。所以“亿级数据、秒级去重”不是口号,而是交互约束——单次查重必须快到能嵌进日常操作。
规模上来以后,瓶颈会换位置
小数据量时,瓶颈是格式不统一。上了规模以后,瓶颈变成:
- 磁盘上存得下,但随机查询很慢
- 一批导入把查询堵住,前台像死机
- 多员工同时导出,把 IO 打满
- 没有按地区或哈希分片,热点集中在少数号段
这时再堆机器而不改数据布局,成本会线性涨,速度却不线性好。需要把号码的唯一键、地区信息和任务状态拆开,让“查是否存在”走最窄的路径。
秒级去重依赖的不是华丽界面
能稳定在秒级附近的系统,通常具备:
- 适合精确匹配的索引。 去重是“在不在”,不是模糊搜索文案。
- 写入和查询隔离。 大文件导入走队列,不影响正在查重的人。
- 规范化在入库前完成。 查询时不要再现场解析五种国家码写法。
- 结果集可流式导出。 不要等整包处理完才给第一行反馈。
底层架构 描述的分布式高并发,针对的就是导入、比对、导出三件事同时发生。原生多线负载均衡则用来把不同地区或不同任务分散开,避免单点把延迟抬上去。
任务模式为什么要分开
演示里常见“全球号码 · 严格去重”这类模式,不是为了多一个标签,而是让同一套引擎用不同规则跑:
- 全球号码:先识别地区再规范化
- 严格去重:降低误合并
- 批量导入:走队列,不阻塞交互查询
如果所有请求都走同一条同步链路,库到亿级时,一次 50 万行的导入就足够让前台查重排队。架构上要把“人点一下”和“文件扔进来”分开。
更基础的规则问题,仍然要回到 全球号码批量去重。分布式解决的是速度和并发,解决不了国家码规则写错。
评估系统时不要只看存储数字
销售话术里的“支持 100 亿存储”只是容量上限。真正该问的是:
- 1 亿条时,单条查询延迟是多少
- 同时 20 个账号导入和查询,会不会互相拖死
- 重复结果能不能按任务回放
- 故障后能否从任务中途继续,而不是整包重来
这些都能在试用里验证。可以先用 Demo 看任务流,再按你的数据量谈 企业版或专业版 的部署。
常见问题
秒级是保证每一条都在 1 秒内吗?
要看查询类型和当时负载。交互式查单个规范化号码,目标是接近即时;百万级批量导入应按吞吐和队列进度来评估,而不是要求整包也在 1 秒结束。
是不是必须上分布式才能用?
不是。刚起步、库还在百万级以内时,基础版 就可以先把流程跑通。分布式是为后续规模预留,不必第一天按百亿方案采购。
如何开始验证?
准备一份带地区标注的样本名单,在演示或开通后的环境里跑一遍导入和查重。需要协助部署时联系 Telegram @imchat。