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

【ES】Elasticsearch的特点优点 为什么比MySQL快?相关推荐

  1. ES迁mysql_使用kafka连接器迁移mysql数据到ElasticSearch

    概述 把 mysql 的数据迁移到 es 有很多方式,比如直接用 es 官方推荐的 logstash 工具,或者监听 mysql 的 binlog 进行同步,可以结合一些开源的工具比如阿里的 cana ...

  2. ES (ElasticSearch) 简易解读(一)为什么用它

    首先和数据库做对比 RDBS ES 数据库(database) 索引(index) 表结构(schema) 类型(type) 行(row) 文档(document)) 列(column) 字段(fie ...

  3. ElasticSearch 基本原理(三)ElasticSearch与Lucene、Solr、Mysql的关系

    信息检索包含内容非常广,包含文本(搜索引擎). 图片(以图搜索).音频(歌曲识别).视频等多种类型数据的检索.为了高效的检索,通常都用建立索引的方式提高检索速度.因为不同类型的数据存储格式.特征提取方 ...

  4. 【Elasticsearch】ES Elasticsearch查询优化

    文章目录 1.概述 1.前言 2 合理的集群规划 3 数据模型优化 3.1 精心设计Mapping 3.2 选择合理的分词器 4 查询限制 5 段合并(segment merge) 6 过滤查询(fi ...

  5. Elasticsearch原理学习--为什么Elasticsearch/Lucene检索可以比MySQL快?

    转载于:http://vlambda.com/wz_wvS2uI5VRn.html 同样都可以对数据构建索引并通过索引查询数据,为什么Lucene或基于Lucene的Elasticsearch会比关系 ...

  6. ES(elasticsearch)中遇到elasticsearch.keystore的问题,已解决!!!

    问题描述 提示:Linux中部署elasticsearch7.8.0 在处于非root权限下,启动elasticsearch,遇到了elasticsearch.keystore的问题 [es@loca ...

  7. ES elasticsearch 系统默认配置设置方法 配置文件

    elasticsearch 系统配置文件为: %ES_HOME%/config/elasticsearch.yml elasticsearch.yml 为配置文件 %ES_HOME% 为 ES ela ...

  8. 比MySQL快801倍,字节阿里争相 部署,真香!

    信息化时代,数据即价值.前瞻未来,数据价值的挖掘和沉淀是大数据领域重要的发展方向,是大数据广大开发工程师进阶的必备技能和职业素养. OLAP(Online Analysis Processing)联机 ...

  9. 比MySQL快801倍,OLAP两大神器ClickHouse和Doris到底怎么选?

    对于匠人而言,一项手艺,如果学不会,结果只有两种:一是低头求人,二是花钱买成品. 对于程序员而言,一款热门软件,如果玩不转,结果也是两种:一是向高手求教,二是看着别人升职加薪. 2021年4月程序员薪 ...

  10. 四、redis比mysql快的原因

    redis比mysql快的原因 Mysql数据存储是存储在表中,查找数据时要先对表进行全局扫描或者根据索引查找,这涉及到磁盘的查找,磁盘查找如果是按条点查找可能会快点,但是顺序查找就比较慢: 而Red ...

最新文章

  1. Centos 6.x 安装 docker
  2. 小程序上让随机的两个点都显示在地图可视区域
  3. connect函数介绍
  4. 校园表白墙APP使用体验
  5. 存储过程-----DECLARE---实用注意事项
  6. oracle的文件后缀名,转:数据文件的扩展名是ora,dbf,dat的,有什么区别?
  7. uinavigation样式
  8. pythonxml模块高级用法_Python利用ElementTree模块处理XML的方法详解
  9. Mysql如何统计表的大小
  10. selenium1、selenium2 示例代码(java版)
  11. 厦门大学人工智能研究院招收2022年推荐免试研究生
  12. H5标签input标签上传文件(一)
  13. 武汉大学计算机学院 夏令营,武汉大学计算机学院2020保研夏令营通知
  14. LeetCode剑指offer题目分类汇总及题解
  15. Python实现和弦查询器(钢琴)
  16. 人工智能 对比试验_【AI测试】人工智能 (AI) 测试--第二篇
  17. BZOJ2121: 字符串游戏
  18. 理解GCN(二)从拉普拉斯矩阵到Ncut问题
  19. SpringCloud项目中无法识别bootstrap.yml的问题
  20. 涓滴意念--java基础

热门文章

  1. 甘超波:NLP抽离与结合
  2. 历经8年美团成功上市!回到起点看王兴,梦想并非遥不可及!
  3. 【CodeForces 697C】Lorenzo Von Matterhorn(LCA)
  4. Xmind基础教程-图标
  5. sklearn预测员工离职率
  6. PSENet(Shape Robust Text Detection with Progressive Scale Expansion Network)论文详解
  7. 毁灭战士 DOOM 3DO 源代码公开
  8. 【转】UEFI引导修复教程和工具
  9. Python个人快速入门学习(九)jieba库的使用
  10. canvas漫天闪烁的星星