Elasticsearch 和 MySQL 都是数据库系统,但它们设计的目的和服务的场景有所不同。Elasticsearch 是一个分布式搜索和分析引擎,而 MySQL 是一种关系型数据库管理系统(RDBMS)。
elasticsearch基础概念
elasticsearch是面向文档(Document) 存储的,可以是数据库中的一条商品数据,一个订单信息。文档数据会被序列化为json格式后存储在elasticsearch中。
类型相同的文档集中在一起管理,称为索引(Index), 可以把索引当做是数据库中的表
数据库的表会有约束信息,用来定义表的结构、字段的名称、类型等信息。因此,索引库中就有映射(mapping) ,是索引中文档的字段约束信息,类似表的结构约束。
mysql与elasticsearch
| MySQL | Elasticsearch | 说明 |
|---|---|---|
| Table | Index | 索引(index),就是文档的集合,类似数据库的表(table) |
| Row | Document | 文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式 |
| Column | Field | 字段(Field),就是JSON文档中的字段,类似数据库中的列(Column) |
| Schema | Mapping | Mapping(映射)是索引中文档的约束,例如字段类型约束。类似数据库的表结构(Schema) |
| SQL | DSL | DSL是elasticsearch提供的JSON风格的请求语句,用来操作elasticsearch,实现CRUD |
使用场景对比
- MySQL:适合于需要严格事务控制的应用程序,比如银行系统、库存管理等。
- Elasticsearch:更适合于日志分析、网站搜索、监控数据存储等对搜索性能要求较高的场景。