Elasticsearth相关概念对比MySQL

79 阅读2分钟

Elasticsearch和MySQL是两种不同类型的数据库,它们有着本质的区别,但是它们都是用于数据存储和搜索的工具。

  1. 存储方式:

    Elasticsearch是一个基于Lucene的全文搜索引擎,主要用于搜索和分析大量的数据。它将数据索引以便快速搜索,并且支持各种复杂的查询。

    MySQL则是关系型数据库,主要用于存储和管理数据。它使用SQL语言进行数据的增删改查操作。

  2. 数据模型:

    Elasticsearch使用的是面向文档的模型,每条记录是一个文档,它是一个包含字段的结构。

    MySQL使用的是面向行的模型,每条记录是一行,由各列的数据构成。

  3. 扩展性:

    Elasticsearch天生是分布式的,可以通过增加更多的节点来轻松地进行水平扩展。

    MySQL也支持通过复制和分片来扩展,但是实现方式和扩展能力都不如Elasticsearch。

  4. 查询语言:

    Elasticsearch有自己的查询语言,称为Query DSL。

    MySQL使用SQL语言进行数据查询。

  5. 性能:

    对于简单的查询,MySQL通常比Elasticsearch更快。但Elasticsearch的全文搜索能力和复杂查询能力,在某些场景下可以超越MySQL。

  6. 应用场景:

    Elasticsearch适合用于日志分析、全文搜索、数据分析等场景。

    MySQL更多地用于事务处理、数据分析等场景

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

如图:

Snipaste_2024-10-15_20-43-18.png