两句话理解 ElasticSearch 搜索引擎数据库的作用

一个有两千万商品的商品表,如何提高根据商品名关键字检索商品的效率,搜索引擎数据库 ElasticSearch

一、个人理解

  • 在 MySQL 数据库中有一个商品表,表中有 2 千万个商品数据,现在要根据商品名称关键字,去查找相关的商品,如何提高效率。
  • 此时如果想提高效率,需要用到 elasticsearch 建立商品索引,提高根据商品名称关键字查找商品的效率。
  • 你可能会想到,MySQL 使用 like 模糊查询不行吗?加索引不就可以提高效率吗?模糊查询的字段索引是失效的。

二、AI 验证理解

你的理解非常正确,这正是 Elasticsearch (ES) 最擅长的场景之一。

面对 2000 万条数据的商品表,使用 MySQL 进行商品名称的关键字查询(尤其是模糊查询)会出现严重的性能瓶颈。而引入 Elasticsearch 建立索引,是业界公认的提升查询效率的最佳实践。

为了让你更清楚地了解其中的原因和具体做法,我为你详细拆解一下:

❓ 1. 为什么要用 Elasticsearch?(原理对比)

在处理“商品名称关键字搜索”这种需求时,MySQL 和 ES 的底层机制有本质区别:

特性MySQL (B+树索引)Elasticsearch (倒排索引)
存储结构按行存储,B+树主要用于加速主键或唯一键查找。倒排索引。将商品名称拆解成一个个词语,建立“词语 -> 商品”的映射。
模糊查询使用LIKE '%关键字%'会导致全表扫描,2000万数据响应极慢(可能需要数秒甚至更久)。天生为搜索设计。输入“苹果”,直接找出包含“苹果”的所有商品 ID。
分词能力原生分词能力弱,对中文支持不友好。支持强大的中文分词器(如 IK 分词器),能智能切分“华为手机”为“华为”和“手机”。
适用场景事务处理、精确匹配(如通过 ID 查商品)。全文检索、模糊搜索、多维度筛选。

结论:对于“根据名称关键字找商品”,ES 的速度通常是毫秒级的,而 MySQL 在大数据量下可能是秒级甚至超时。

🚀 2. 具体如何做?(架构方案)

你不需要抛弃 MySQL,而是采用“MySQL + ES” 的混合架构

  • MySQL:作为主库,负责存储商品的完整数据(库存、价格、销量等),保证数据的准确性和事务一致性。
  • Elasticsearch:作为查询库,只负责根据商品名称、描述等进行快速检索。

数据同步流程:

  1. 同步机制:利用 Canal 或 Logstash 监听 MySQL 的 Binlog 日志。
  2. 写入:当商品信息在 MySQL 中被修改(增删改)时,通过程序将变更同步到 ES 中。
  3. 查询:前端搜索请求直接发往 ES,ES 返回商品 ID 列表,应用层再根据 ID 去 MySQL 或缓存中获取详细信息。

💡 3. 针对你的场景,还需要注意什么?

虽然 ES 能解决搜索慢的问题,但在实施时,我有几点建议供你参考:

  • 数据一致性:ES 是通过异步方式从 MySQL 同步数据的,所以会有1-2 秒钟的延迟。如果用户刚上架商品立刻搜索,可能搜不到。这在搜索场景中通常是可接受的(最终一致性)。
  • 分页问题:如果你不仅要搜,还要翻到第 1000 页,MySQL 的 LIMIT 10000, 20 会很慢。ES 的深度分页(Deep Pagination)虽然也有优化空间,但配合 search_after 特性,处理 2000 万数据的翻页会比 MySQL 更高效。
  • 冷热数据分离:如果这 2000 万数据中,有大量是下架或很久没浏览的“冷数据”,可以考虑只把热数据同步到 ES,进一步节省资源。

总结来说:你的思路完全正确。对于 2000 万级别的商品表,引入 Elasticsearch 来处理商品名称的模糊搜索,是提升效率的最优解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1131680.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序员必看:Docker+Dify+DeepSeek本地部署大模型+知识库完整教程(含实操,建议收藏)

本文详细介绍了如何使用Docker、Dify和DeepSeek搭建本地大模型系统。通过安装Docker环境,部署Dify平台,配置DeepSeek和bge-large模型,上传私有知识库,最终创建个性化AI助手。这种本地部署方式能让大模型学习个人专业知识&#xff…

SnapShot硬盘备份软件:一款小巧强大的德国军工级数据备份方案

在系统维护、数据迁移和灾难恢复场景中,一款可靠、快速的备份工具至关重要。与Acronis True Image、Ghost等大型商业软件不同,Drive SnapShot​ 以其“小而美”的设计哲学脱颖而出。它用极小的体积实现了专业级备份软件的核心功能,尤其适合技…

【干货收藏】RAG调优完整指南:从基础到GraphRAG,提升大模型回答准确率

文章详解RAG系统调优方法,包括知识库优化(检索优化、知识沉淀、健康度检查)、高级召回排序技术(混合检索、重排序、查询扩展)及GraphRAG解决复杂查询。提出三阶段进阶路径:起步期优化分词和混合检索&#x…

mysql的分区表

1.SQL表创建 下面以时间范围进行创建(每月一个分区,表中创建了四个月的分区) 创建:CREATE TABLE test_table ( id INT NOT NULL AUTO_INCREMENT, content VARCHAR(255), create_time DATETIME NOT NULL,PRIMARY KEY (id, creat…

保姆级教程:使用Dify搭建知识库+Ollama部署本地模型,零基础也能轻松上手!

本文详细介绍了两大步骤:首先讲解如何安装配置Dify并调整文件上传限制;其次指导使用Ollama部署本地模型,包括安装配置、监听设置及模型名称获取。通过本教程,读者可掌握搭建个人知识库和本地AI服务的完整流程,适合想要…

最新APP导航下载页系统源码 带后台

非常好看的一款App导航推荐页源码,带后台,这是一款PHP源码,Thinkphp框架,这款源码安装非常便捷干净,后台添加应用及轮播广告也非常方便,网站自适应PC手机自适应,喜欢的自行部署吧!安…

AI产品经理进阶指南+大模型全栈学习路线:104G资源包助你从零到实战

文章详解AI产品经理与通用产品经理的区别、必备技能及转型路径,并系统介绍大模型七大学习阶段,从系统设计到行业应用实战。同时提供100套AI商业化方案、全套视频教程和200本PDF书籍等资源,帮助程序员和小白系统掌握大模型技术,实现…

深度学习毕设选题推荐:基于python_CNN卷积神经网络对甜点识别

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

公众号图片圆角与阴影样式配置实战(以135编辑器为例)

摘要:本文聚焦公众号图片圆角(border-radius)与阴影(box-shadow)样式配置的核心需求,以135编辑器为实操案例,从操作步骤、参数解析到避坑指南,全流程拆解可视化样式配置的实现逻辑。…

千寻运动助手V3.1小程序源码 全开源版

会员积分流量主自动化任务全功能上线基于PHPMySQL的运动步数管理助手,支持VIP自动任务、积分体系、流量主变现,打造专属健康运动小程序项目简介:运动健康领域的全能助手在全民健身和数字化健康管理的时代背景下,一款能够激励用户运…

基于C++Qt实现邮政客户投诉工单处理系统[2026-01-07]

基于CQt实现邮政客户投诉工单处理系统[2026-01-07] 项目介绍 邮政客户投诉工单处理系统是一个基于Qt框架开发的信息管理系统,主要用于处理邮政客户的投诉工单,实现了投诉工单的创建、处理、审核、统计等全流程管理。系统支持多角色权限管理&#xff0c…

《计算机网络》深入学:组帧

在计算机网络的世界里,物理层像是一个不知疲倦的搬运工,它只负责传输比特流(0 和 1),却并不关心这些比特代表什么意义。 而数据链路层(Data Link Layer) 的核心任务之一,就是把这些…

MySQL数据误删或者误更新如何恢复(详细步骤,一看就会)

目录 本篇文章适用场景 一、下载MyFlash工具二、误删数据恢复 先检查MySQL有没有开启binlog日志演示误删除数据利用MyFlash工具 反写SQL利用mysqlbinlog 执行反写的sql二进制文件恢复完成 三、误更新数据恢复 演示误更新数据查看binlog最近的更新记录 ,确定起始、结…

空间计算开发者技能指南 2026

空间计算时代的来临:定义、生态与技术共振 “空间计算”(Spatial Computing)不仅仅是营销术语,它标志着计算平台从二维屏幕向三维物理空间的范式转移。虽然 Apple 将 visionOS 定义为空间计算操作系统,但在更广泛的开…

通信协议仿真:通信协议基础_(7).协议仿真的工具与软件

协议仿真的工具与软件 在通信协议仿真领域,选择合适的工具和软件是至关重要的。这些工具和软件可以帮助我们更高效地设计、实现和测试通信协议。本节将详细介绍一些常用的协议仿真工具及其使用方法,包括NS-3、OMNeT++、MATLAB等。 1. NS-3 NS-3(Network Simulator 3)是一…

你画我猜计时答题对战房间酒馆互动神器H5开源

让我为您介绍这个"云起SAAS小酒馆互动H5"系统。 系统介绍 这是一个云起SAAS小酒馆互动H5系统,一个完整的双人对战游戏平台。 核心功能 1. 双人游戏模式计时答题对战: 双方同步答题,统计得分和用时,得分高且用时短者胜,输方接受惩罚你画我猜对战: 一人画一人猜,画手完…

《庄子》导读

《庄子》是战国时期道家学派的经典著作,由庄周及其后学共同撰写,全书现存 33 篇,分为内篇 7 篇、外篇 15 篇、杂篇 11 篇。学界普遍认为,内篇为庄子本人所著,集中体现核心思想;外篇、杂篇多为弟子及后学阐发…

mysql数据被误删的恢复方案

文章目录 一、使用备份恢复二、使用二进制日志(Binary Log)三、使用InnoDB表空间恢复四、使用第三方工具预防措施 数据误删是一个严重的数据库管理问题,但通过合理的备份策略和使用适当的恢复工具,可以有效地减少数据丢失的风险…

【复杂网络分析】从直觉上理解《Stability of graph communities across time scales》

我刚接触社区发现时,最头疼的三个问题的是:到底什么是“好社区”?不同算法的结果为啥差这么多?模块化、谱聚类这些方法看着八竿子打不着,有没有内在联系?我们组的《Stability of graph communities across time scales》这篇经典论文,把这些经典方法串成了一张逻辑自洽的…

《庄子》核心篇章的思维导图框架

一、核心篇章总览内篇(必读,庄子核心思想载体)外篇/杂篇(选读,思想延伸与补充)二、内篇(必读)1. 《逍遥游》核心主题:“无待”的绝对逍遥境界关键意象:大鹏、…