网站首页 > 博客文章 正文
大家好,我是贠学文,点击右上方“关注”,每天为您分享java程序员需要掌握的知识点干货。
之前在用mysql的时候,对like查询使索引失效的问题,苦恼了很长时间,一直没有什么好的方案,有人可能会说like查询的时候,只要不在前面加%,索引就不会失效,但是问题是这样满足不了用户的需求啊,用户就是要加,你能怎么办?
在后来,就接触到了es,因为es底层用了lucene做了分词,可以支持全文索引,就解决了mysql的like查询的问题。而且据说是es采用的是倒排索引,查询效率也比mysql高,当时我就对这个倒排索引产生了兴趣,它到底是什么样的原理,使查询效率变高呢?
带着这个问题,我就去网上搜了下倒排索引的原理,结果我搜出来以后,我就更加迷茫了,按照它的这个原理,那mysql不也是倒排索引么?有什么区别?凭什么同样的原理,es就比mysql快呢?
后来,我又深入的了解了一下es索引的,发现es效率高的原因,其实并不是因为倒排索引,而主要是以下三个原因:
1.采用lucene做分词,提高了模和模糊查询的效率。
2.在做复杂查询时,mysql会选择一个能过滤掉数据最多的字段作为索引,而es,每个索引都用的上,它会用跳表的方式,把每个索引查询出来的结果取交集,这样确实要比mysql快很多。
3.es在索引的前面,又加了一层索引树,存每个索引的前缀,这样即使数据量特别大的时候,也能快速定位索引的位置。
当然了,es效率比mysql高的原因,一定还有其他原因,但是我认为最主要的,就是这三点。至于什么倒排索引,搞的名字挺高大上的,其实纯纯就是误导人的
往期精彩:
作者介绍:
贠学文,具有多有经验的java开发工程师,业余时间利用头条分享技术知识点与自己对技术的感悟,帮助对自己未来感到迷茫的程序员,在技术上得到提升。结识一些志同道合的朋友,相互促进,共同进步。
猜你喜欢
- 2024-10-27 MySQL 为什么使用数据索引能提高效率
- 2024-10-27 Elasticsearch 在地理信息空间索引的探索和演进
- 2024-10-27 终于有人把Elasticsearch原理讲透了(二)
- 2024-10-27 PostgreSQL技术内幕6:PostgreSQL索引技术
- 2024-10-27 ElasticSearch的分布式架构原理(吐血整理!)
- 2024-10-27 「漫画」elasticsearch原理就是这么简单(上)
- 2024-10-27 Elasticsearch读书笔记(二)(elasticsearch 书推荐)
- 2024-10-27 搜索引擎原理系列教程:收录、索引、排名
- 2024-10-27 什么是预处理: 预处理简称为“索引”
- 2024-10-27 陈年SEO:解密百度SEO排序影响因素
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)