【ES】Elasticsearch的特点/优点 为什么比MySQL快?_锥栗的博客-CSDN博客_es数据库和mysql对比


本站和网页 https://blog.csdn.net/fisherish/article/details/119824719 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

【ES】Elasticsearch的特点/优点 为什么比MySQL快?_锥栗的博客-CSDN博客_es数据库和mysql对比
【ES】Elasticsearch的特点/优点 为什么比MySQL快?
锥栗
已于 2022-07-29 16:10:17 修改
5829
收藏
17
分类专栏:
Elasticsearch
文章标签:
搜索引擎
分布式
mysql
数据库
java
于 2021-08-20 15:32:04 首次发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/fisherish/article/details/119824719
版权
Elasticsearch
专栏收录该内容
17 篇文章
3 订阅
订阅专栏
Elasticsearch的特点
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎。 优势: 1)分布式的文件存储,每个字段都被索引且可用于搜索。 2)分布式的实时分析搜索引擎,海量数据下近实时秒级响应。 3)简单的restful api,天生的兼容多语言开发。 4)易扩展,处理PB级结构化或非结构化数据。(pb指petabyte,1PB=1024TB)
Elasticsearch和MySQL的区别
1)在存储上,es是document格式的存储,mysql是行格式的,所以es并不需要显式定义字段,而mysql需要。 2)在架构上,es天然就是分布式的,可以很容易的横向扩容,mysql不行。 3)在针对场景下,es无法做到实时,而mysql可以,因此mysql的OLTP (Online Transactional Processing,联机事务处理)对于es而言需要额外考虑下场景是否适用,可以认为es同时具有oltp和olap的特点,但两边都不是特别突出。 4)在数据存储量及性能上,mysql由于其索引实现(innodb为例)导致在数据量大到一定级别后会出现性能衰减;而es只要给足足够内存就没太大问题。插入速度上如果正确的配置mysql其性能并不低,当然相对于正常状态es而言还是差了一个到多个量级(es>mongo>mysql)。查询速度这个主要看索引和数量,在需要复杂关联查询的时候建议优先考虑mysql。 资源开销上,当数据量上去了后如果为了维持性能的话,es吃内存的能力绝对可以傲视群雄,但毕竟没有不吃草就能跑的快的马儿。 5)易用性上当然是mysql>es。其实刨掉全文检索场景,mysql(5.6以后)加上良好的设计就能很好的支持绝大部分需求了。
6)Elasticsearch会对所有输入的文本进行处理,建立索引放入内存中,从而提高搜索效率。在这一点上ES要优于MySQL的B+树的结构,MySQL需要将索引放入磁盘,每次读取需要先从磁盘读取索引然后寻找对应的数据节点,但是ES能够直接在内存中就找到目标文档对应的大致位置,最大化提高效率。 并且在进行组合查询的时候MySQL的劣势更加明显,它不支持复杂的组合查询比如聚合操作,即使要组合查询也要事先建好索引,但是ES就可以完成这种复杂的操作,默认每个字段都是有索引的,在查询的时候可以各种互相组合。
Elasticsearch比MySQL快的原因
对比: 1)基于分词后的全文检索:例如select * from test where name like ‘%张三%’,对于mysql来说,因为索引失效,会进行全表检索;对es而言分词后,每个字都可以利用FST高速找到倒排索引的位置,并迅速获取文档id列表,大大的提升了性能,减少了磁盘IO。 2)精确检索:进行精确检索,有些时候可能mysql要快一些,当mysql的非聚合索引引用上了聚合索引,无需回表,则速度上可能更快;es还是通过FST找到倒排索引的位置比获取文档id列表,再根据文档id获取文档并根据相关度进行排序。但是es还有个优势,就是es即天然的分布式能够在大量数据搜索时可以通过分片降低检索规模,并且可以通过并行检索提升效率,用filter时,更是可以直接跳过检索直接走缓存。
如果MySQL走索引,谁比较快?
进行精确检索,有些时候可能mysql要快一些,当mysql的非聚合索引引用上了聚合索引,无需回表,则速度上可能更快;es通过FST找到倒排索引的位置比获取文档id列表,再根据文档id获取文档并根据相关度进行排序。但是es还有个优势,就是es即天然的分布式能够在大量数据搜索时可以通过分片降低检索规模,并且可以通过并行检索提升效率,用filter时,更是可以直接跳过检索直接走缓存。
参考
https://zhuanlan.zhihu.com/p/137574234
关注博主即可阅读全文
锥栗
关注
关注
点赞
17
收藏
打赏
评论
【ES】Elasticsearch的特点/优点 为什么比MySQL快?
Elasticsearch的特点Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎。优势:1)分布式的文件存储,每个字段都被索引且可用于搜索。2)分布式的实时分析搜索引擎,海量数据下近实时秒级响应。3)简单的restful api,天生的兼容多语言开发。4)易扩展,处理PB级结构化或非结构化数据。(pb指petabyte,1PB=1024TB)Elasticsearch和MySQL的区别1)在存储上,es是document格式的存储,mysql是行格式的,所以
复制链接
扫一扫
专栏目录
ElasticSearch为何查询速度快(秒懂)
Zystem
04-06
1万+
有一位学长突然问我你知道为啥es比数据库mysql查询的快吗?之前对于es的印象就是高效的搜索框架,实际应用过,但是没想过原理,后来查了一些资料,现在做一下总结。
希望还是小伙伴们可以了解一些es的知识之后再来看这一个文章吧。
es为何查询速度快?
es采用的是倒序索引,这种索引方式和我们的正常索引不太一样,我们以一张表来说明,看一下对比:
id
age
sex
name...
为什么ElasticSearch查询速度比mysql快?
东城庞太师
12-14
1939
数据查询速度对比分析(MySql + InnoDB)
mysql:MyISAM索引
原理:B+树查找
InnoDB:InnoDB索引
总结:mysql的磁盘IO次数太多
ElasticSearch优化:尽量使数据先在内存中查询
参与评论
您还未登录,请先
登录
后发表或查看评论
MongoDB与MySQL的操作对比表及区别介绍
12-16
MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库。它们各有各的优点,关键是看用在什么地方。所以我们所熟知的那些SQL(全称Structured Query Language)语句就不适用于MongoDB了,因为SQL语句是关系型数据库的标准语言。
以我们公司项目为例,在早期的项目中,都在使用关系型数据库,用过SQLServer,Oracle,DB2,后来全部转向Mysql,原因很简单:Mysql在性能不错的情况下,有着开源优势。Mysql的事务性与高性能是我们主要考虑的。后来,由
es为什么查询效率高的原因
最新发布
ElevenXfr的博客
11-04
62
es为什么查询效率高的原因
ES与传统数据库的比较
热门推荐
PlayGrrrrr的专栏
01-08
5万+
ES(ElasticSearch)是一款分布式全文检索框架,底层基于基于Lucene实现。ES与传统数据的区别主要有:
1.结构名称不同
一个ES集群可以包含多个索引(数据库),每个索引又包含了很多类型(表),类型中包含了很多文档(行),每个文档使用 JSON 格式存储数据,包含了很多字段(列)。
关系型数据库
数据库
为什么Elasticsearch比MySql的检索快
無規則的博客
11-19
1万+
为什么Elasticsearch比MySql的检索快?
Elasticsearch 是通过 Lucene 的倒排索引技术实现比关系型数据库更快的过滤。特别是它对多条件的过滤支持非常好,比如年龄在 18 和 30 之间,性别为女性这样的组合查询。倒排索引很多地方都有介绍,但是其比关系型数据库的 b-tree 索引快在哪里?到底为什么快呢?
笼统的来说,b-tree 索引是为写入优化的索引结构。当...
5种常用数据库对比 & ES数据库的优势所在
攻城狮Kevin
04-11
1万+
常用的5种数据库:redis、mysql、ES、hbase、hive
在实际生产环境下,如果需要找到一种容纳较大规模数据并且交互性好的数据库,使用ES比较好
mysql虽然家互相好,但是扩容能力有限
hbase虽然支持海量数据的存储,但由于查询是基于磁盘,数据在HDFS上,查询的灵活性不足,主要依靠rowkey查询
ES可以在容量和交互性上达到一个非常不错的平衡。
此外,ES数...
(三)elasticSearch和MySQL的对比
方方土的博客
11-21
3327
ElasticSearch和MySQL的对比
一、ES和MySQL的概念的比较
二、ES和MySQL使用场景的比较:
1、MySQL更擅长的是事务类型的操作,可以确保数据的安全和一致性;如果是有事务要求,如商品的下单支付等业务操作,无疑使用MySQL。
2、ES更擅长的是海量数据的搜索,分析和计算;如果是复杂搜索,无疑可以使用Elasticsearch。
3、两者是一个互补而不是替代的关系。
...
Mysql 与ES(Elastic Search)对比
m0_67401417的博客
04-21
2578
Mysql
1.关系型数据库,顾名思义,适用于结构化数据(数据与数据之间存在强关联)的存储和查询;
2.适用于复杂的业务逻辑控制、频繁数据更改这样的场景使用;
3.需要保证数据的原子性,可认为保证多个数据同时成功存储(不存在部分存储成功,部分数据存储失败的情况)
1.需要使用者清楚的知道自己所需要查找的数据在哪个表格,并且对内部的字段参数有所了解;
2.全表全字段检索效率较低,性能消耗大;
ES(Elastic Search)
1.非关系型数据库,全文检索引擎首选,适用于数据与数据之间关联相对独立且
elasticsearch为什么比mysql快
weixin_46742102的博客
08-19
1552
想要搞清这个问题要从mysql和ES的索引数据结构下手,咱们先了解一下mysql的索引结构,然后再了解一下ES的索引结构,然后再进行对比这个问题就会很清楚了。
mysql关系型数据库索引原理:
数据库的索引是B+tree结构
主键索引是聚合索引,其他索引是非聚合索引
聚合索引:
可以通过主键直接找到数据。
非聚合索引:
如果mysql根据非聚合索引去查询数据,首先要通过非聚合索引找到对应的主键id,再去根据主键id走聚合索引找到数据
Elasticsearch倒排索引原理:
es的优点
jq1223的博客
04-20
749
1、elasticsearch是一个基于Lucene的高扩展的分布式搜索服务器,支持开箱即用。
2、elasticsearch隐藏了Lucene的复杂性,对外提供Restful 接口来操作索引、搜索。
3、支持分布式,扩展性好,可部署上百台服务器集群,处理PB级数据。
4、近实时的获取索引数据、搜索数据。
5、降低全文检索的学习曲线,可以被任何编程语言调用
...
es倒排索引和mysql索引的_Elasticsearch倒排索引结构?为啥比 MYSQL 快
weixin_39672396的博客
01-19
145
1、什么是倒排索引?倒排索引(Inverted Index)也叫反向索引,有反向索引必有正向索引。通俗地来讲,正向索引是通过key找value,反向索引则是通过value找key。先来回忆一下我们是怎么插入一条索引记录的:curl -X PUT "localhost:9200/user/_doc/1" -H 'Content-Type: application/json' -d'{"name" :...
elasticsearch搜索竟然比mysql慢?
qq_25933841的博客
05-20
1308
最近笔者在测试elasticsearch和mysql的查询效率的时候竟然意外的发现es查询效率比mysql还慢.
es查询一个简单的语句,竟然要四五百毫秒,而mysql只需要一百多毫秒.
最初的判断:
1.es的服务器硬件资源不足:内存不够,搭建的是两台es,用作日志收集存储,每台的es内存设置的是2g(最后查到es的内存最好设置为服务器内存的一半以内.然后查看服务器内存为16g,然后我就设置了es的内存为7g,发现查询效率还是不如mysql)
2.es服务器的系统负载比较高.四核的cpu,竟然负载
ElasticSearch为什么检索快?对比Mysql分析
Aaron_涛
02-22
7882
1.ES一定快吗?
1.1.数据库的索引是B+tree结构
主键是聚合索引 其他索引是非聚合索引,见下图
如果是一般搜索,一般从非聚集索树上搜索出id,然后再到聚集索引树上搜索出需要的内容。
1.2.elasticsearch倒排索引原理
Term Index 以树的形式保存在内存中,运用了FST+压缩公共前缀方法极大的节省了内存,通过Term Index查询到Te...
ElasticSearch 索引 VS MySQL 索引
weixin_43167418的博客
09-18
2023
前言这段时间在维护产品的搜索功能,每次在管理台看到 elasticsearch 这么高效的查询效率我都很好奇他是如何做到的。这甚至比在我本地使用 MySQL 通过主键的查询速度还快。为此...
为什么要使用elasticsearch
非著名程序员
06-21
3561
首先ES是基于Lucene这个非常成熟的索引方案,另加上一些分布式的实现:集群,sharding,replication等。ES的优势主要可以看以下几个方面:1. 横向可扩展性:只需要增加一台服务器,做一点儿配置,启动一下ES进程就可以并入集群;2. 分片机制提供更好的分布性:同一个索引分成多个分片(sharding),这点类似于HDFS的块机制;分而治之的方式来提升处理效率,相信大家都不会陌生;...
ElasticSearch的优点
风流三月1
06-25
1万+
Elasticsearch tries hard to hide the complexity of distributed systems. Here are some of the operations happening automatically under the hood【Elasticsearch 尽力隐藏了分布式系统的复杂性,这里尝试了很多方法在后台自动处理分布式的问题】:
Pa...
Elasticsearch查询速度为什么这么快?看啥?问你呢!
qwe123147369的博客
10-15
963
这段时间在维护产品的搜索功能,每次在管理台看到 Elasticsearch 这么高效的查询效率我都很好奇他是如何做到的。
这甚至比在我本地使用 MySQL 通过主键的查询速度还快。
为此我搜索了相关资料:
这类问题网上很多答案,大概意思呢如下:ES 是基于 Lucene 的全文检索引擎,它会对数据进行分词后保存索引,擅长管理大量的索引数据,相对于 MySQL 来说不擅长经常更新数据及关联查询。
说的不是很透彻,没有解析相关的原理;不过既然反复提到了索引,那我们就从索引的角度来对比下两者的差异。
My
ElasticSearch的优缺点
悟已往之不谏,知来者之可追
08-13
9177
优点
开箱即用,天生集群
横向扩展性:只需要增加一台服务器,做一点配置,启动一下ES进程就可以并入集群。
分片机制提供更好的分布性:同一个索引分成多个分片(sharding),分而治之的方式来提供处理效率。
高可用:提供复制(replica),一个分片可以设置多个复制分片,使得某台服务器宕机的情况下,集群仍旧可以照常运行;
速度快,负载能力强,在面对海量数据时候,搜索速度极快。
缺点
各节点数据的一致性问题:其默认的机制是通过多播机制,同步元数据信息,但是在比较繁忙的集群中,可能会由于网络的阻塞,或者节点处
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:点我我会动
设计师:我叫白小胖
返回首页
锥栗
CSDN认证博客专家
CSDN认证企业博客
码龄4年
暂无认证
433
原创
3529
周排名
4110
总排名
17万+
访问
等级
5199
积分
2871
粉丝
112
获赞
177
评论
381
收藏
私信
关注
热门文章
【Latex学习】Latex中插入超链接/网址
32416
【Latex学习】Latex中插入Python代码的方法
10046
【Latex学习】在生成pdf中加入书签/目录/提纲
6663
【ES】Elasticsearch的特点/优点 为什么比MySQL快?
5807
【Latex学习】注释(comment)和取消注释的快捷键
4563
分类专栏
算法与数据结构
261篇
数据结构
16篇
图解十种排序算法
11篇
剑指offer
80篇
Leetcode
154篇
Java基础
2篇
Java虚拟机
3篇
Java并发
5篇
版本管理
13篇
数据库
6篇
SQL实战题解
35篇
Mybatis
2篇
Spring
8篇
缓存
1篇
Elasticsearch
17篇
Maven
1篇
zookeeper
1篇
docker
1篇
设计模式
1篇
其他
7篇
测试与监控
2篇
项目
14篇
手写一个RPC框架
7篇
手写一个Tomcat
2篇
技术碎片
5篇
ReID
41篇
ML&DL
12篇
Latex学习
4篇
最新评论
【Java并发】10个线程处理完任务后,再合并处理,CountDownLatch的用法
Yigezxy:
这样的并发有问题吧。
【Redis】redis事务的特性?真的没有原子性吗?
incredible__:
redis事务没有原子性好吗?不要误人子弟。
【Redis】redis事务的特性?真的没有原子性吗?
gagaga fish:
我认为他是不满足原子性这个特性的,当错误出现在执行事务阶段的时候,在存在运行错误的情况下,除执行中出现错误的命令外,其他命令都还是能正常执行
【Java基础】ArrayList的容量上限?为什么Integer.MAX_VALUE要减8?
qq_41449833:
8个int占用32个bytes啊,你是不是看错了
【Java并发】线程池多线程调用 限定超时时间 future.get()串行阻塞式运行
锥栗:
这种方式有他的价值,只是要不要这么用要看业务需求了
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
【PostgreSQL】GIN索引安装与使用 - 全模糊匹配/数组匹配,PG批量插入上万随机生成数据,随机生成字符串/数组
【JMeter】通过CSV传入列表参数 传入带逗号参数
【PostgreSQL】PG左模糊 右模糊匹配查询,如何走btree索引
2022
12月
1篇
11月
2篇
10月
3篇
09月
1篇
08月
4篇
07月
3篇
06月
7篇
05月
7篇
04月
10篇
01月
2篇
2021年300篇
2020年93篇
2019年1篇
目录
目录
分类专栏
算法与数据结构
261篇
数据结构
16篇
图解十种排序算法
11篇
剑指offer
80篇
Leetcode
154篇
Java基础
2篇
Java虚拟机
3篇
Java并发
5篇
版本管理
13篇
数据库
6篇
SQL实战题解
35篇
Mybatis
2篇
Spring
8篇
缓存
1篇
Elasticsearch
17篇
Maven
1篇
zookeeper
1篇
docker
1篇
设计模式
1篇
其他
7篇
测试与监控
2篇
项目
14篇
手写一个RPC框架
7篇
手写一个Tomcat
2篇
技术碎片
5篇
ReID
41篇
ML&DL
12篇
Latex学习
4篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
锥栗
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值