Elasticsearch与MySQL相关概念对比

63 阅读2分钟

一、正向索引和倒排索引

概念

  • 正向索引是最传统的,根据id索引的方式。但根据词条去查询时,必须先逐个获取每个文档,然后判断文档中是否包含所需要的词条,是根据文档找词条的过程,Mysql采用的就是正向索引。
  • 倒排索引则相反,先找到用户要搜索的词条,根据词条得到保护词条的文档的id,然后根据id获取文档。是根据词条找文档的过程,Elasticsearch就是基于倒排索引实现的。

优缺点

正向索引倒排索引
优点缺点优点缺点
可以给多个字段创建索引根据非索引字段,或者索引字段中的部分词条查找时,智能全表扫描根据词条搜索、模糊搜索时,速度非常快只能给词条创建索引,而不是字段
根据索引字段搜索、排序速度非常快无法根据字段做排序

二、Elasticsearch与MySQL基础概念

mysql与elasticsearch的概念对比:

MySQLElasticsearch说明
TableIndex索引(index),就是文档的集合,类似数据库的表(table)
RowDocument文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式
ColumnField字段(Field),就是JSON文档中的字段,类似数据库中的列(Column)
SchemaMappingMapping(映射)是索引中文档的约束,例如字段类型约束。类似于数据库的表结构(Schema)
SQLDSLDSL是elasticsearch提供的JSON风格的请求语句,用来操作elasticsearch,实现CRUD

总得来说,两者都有自己的擅长之处。

  • Mysql:擅长事务类型操作,可以确保数据的安全和一致性。适合于需要严格事务控制的应用程序,如银行系统、库存管理等;
  • Elasticsearch:擅长海量数据的搜索、分析、计算,更适合于日志分析、网站搜索、监控数据存储等对搜索性能要求较高的场景。