尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

记录一次伟大的实践--上亿数据快速模糊匹配方案

记录一次伟大的实践--上亿数据快速模糊匹配方案
📅 发布时间:2026/6/22 17:36:03

问题:

有一千二百万条url ,还有1亿1千万的关键词,关键词一定出现在某条url的名字里,但是关键词不完全和名字相等,并且可能一个关键词同时出现在多个url中,所有和关键词匹配的url都要列出来

背景:

最开始没有想到会处理这么多数据,果断采用以下最省力的方案,半小时测试数据顺利通过,果断收钱完工,客户拿到脚本跑一下午都没出结果,来售后了,一顿排查,脚本没问题,再问数据,谁成想有上亿的数据要处理!!!
欧麦嘎的,要了老命了,方案1运行完估计要将近36小时,收人家票子了,没办法,改吧……然后就有了灵关一现的方案2
没有任何经验可谈,纯纯被逼出来的想法
不得不说Gemini 是真好用,ql_query就是它给我改出来的(顺便夹带点私货:我这有Gemini成品号,绑定教育机构的,50大洋一个,售后30天,前几天的大规模封号事件,我们这一个都没封,售后期内封号包换(不限制次数))

方案1

第一反映,直接把url 拆成map, key=url的name value=url ,然后遍历 关键词,遍历map,关键词在key里就记录value

解析1

小批量数据能用,但是太慢了,每条关键词都要扫描一遍map,太TMD蠢了,而且对内存占用极大 ,多线程OOM

方案2

把url 拆开 name 和url ,导入mysql 中,并且把name字段建立全文索引

CREATETABLEIFNOTEXISTSall_urls(idINTNOTNULLAUTO_INCREMENTPRIMARYKEY,nameVARCHAR(255)NOTNULL,urlTEXTNOTNULL,FULLTEXTINDEXidx_name_ft(name)-- 在这里直接定义全文索引)ENGINE=InnoDB;

查询语句

# 重要的是这里不要使用 select url from all_urls where name like '%%' ,这种会导致全文索引直接失效了,效率及其低ql_query=""" SELECT url FROM all_urls WHERE MATCH(name) AGAINST(:search_term IN BOOLEAN MODE) """# source_name 就是要查询的关键字search_term=f'"{source_name}"'params={'search_term':search_term}# with db_pool.get_session() as session: 这使用sqlalchemy实现的,自己写就的了withdb_pool.get_session()assession:res=session.execute(text(sql_query),params)

解析2

使用此方案处理时间从方案1 的5个线程运行天级别,降低到了单线程运行分钟级别

相关新闻

  • Qwen3-Coder开源发布:开启智能编程新纪元,全球开发者共享
  • 37、商业技术管理的关键要点与策略
  • 9、KVM虚拟化与数据库管理全解析

最新新闻

  • 2026口碑最佳国内波纹管横评:五款贵州公司实力出众广受好评 - 十大品牌榜
  • 终极游戏手柄映射指南:5个技巧让任何游戏都支持手柄操作
  • 专业学位证翻译盖章怎么办?合规办理流程说明 - 叮咚办真方便
  • 2026哈尔滨手表回收分级评分|7家机构S-A-B级划分,添价收黄金奢侈品回收稳居S级 - 薛定谔的梨花猫
  • 低成本机器人臂Koch v1.1:从零开始构建你的教学机器人系统
  • 上海汽车烧机油治理哪家好,老牌汽修门店,上万台成功案例,轻度免拆1000元左右 - 速递信息

日新闻

  • 2026速览惠州叛逆青少年学校前十大排名名单出炉 - 武汉中职最新信息发布
  • 2026上饶白蚁消杀哪家好?15年本土2大权威白蚁防治公司推荐(金盾虫控/青蚁卫士) - 我叫一
  • 天龙八部单机版终极数据管理工具:5个技巧快速掌握游戏数据编辑

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号