ElasticSearch - 基础概念,以及和 mysql 的对比

目录

[一、ElasticSearch 基础概念](#一、ElasticSearch 基础概念)

1.1、文档(document)

1.2、索引(index)

1.3、映射(mapping)

[二、对比 mysql](#二、对比 mysql)

2.1、概念对比

2.2、适用场景对比

[2.2.1、那是不是说,有了 es 之后,就可以完全替代我们的 mysql 了呢?](#2.2.1、那是不是说,有了 es 之后,就可以完全替代我们的 mysql 了呢?)

2.2.2、他们两之间有什么关系


一、ElasticSearch 基础概念


1.1、文档(document)

elasticsearch 是面向文档存储的,可以是数据库中的一条商品数据,也可以是订单数据... 这些东西都会被序列化成 json 的格式,存储在 es 中.

比如前面提到的商品表,里面有 id 、title 、price 这些数据,最后都会被序列化成 json 的格式进行存储.

1.2、索引(index)

索引就是相同类型文档的集合。这就相当于是 MySQL 中的表一样,而文档就是表中的每一行数据.

1.3、映射(mapping)

这里的映射就是对文档字段的约束,比如你的字段名字是什么,数据类型是字符串,还是数字啊. 这就类似于 mysql 中的约束一样.

Ps:所以这我们不难看出,这里 es 的概念和 mysql 之间有一些相似关系,下面我们就来对比一下.

二、对比 mysql


2.1、概念对比

一下数据,第一列为 mysql 、第二列为 es.

  • 表 => 索引:索引,就是文档的集合,类似于数据库中的表.
  • 行 => 文档:文档,就是一条条数据,类似数据库中的每一行数据,但是文档的格式是 json 格式.
  • 列 => 字段:字段,就是 json 文档中的字段,类似于数据库中的列.
  • 约束 => 映射:映射是索引中文档的约束,例如字段类型约束(数据类型).类似于数据库中的表结构.
  • SQL => DSL:DSL 是 es 中提供的 json 风格的请求语句,用来操作 es,实现 CRUD.

2.2、适用场景对比

2.2.1、那是不是说,有了 es 之后,就可以完全替代我们的 mysql 了呢?

并不可以啊,因为他们两擅长的事情是不一样的~~

  • mysql:更擅长的是事务的操作,事务里面有原子性、持久性、一致性、隔离性这些,因此可以保证数据的安全性、持久化存储、数据一致.
  • es:es 中就没有事务的概念了,他更擅长的数据的搜索分析和运算.

例如,现在要做一个下单付款这样的业务,对事务的要求很高,因此就应该使用 mysql 去存储;如果你先在做到是一个商品搜索,或者是页面搜索,这种搜索比较复杂(比如用户通过关键词搜索所有相关信息),那么就需要使用 es 去做.

2.2.2、他们两之间有什么关系

他们在系统架构中是一种互补的关系, 比如我们的用户做一个商品订单的搜索,因为 es 的搜索能力更强,所以这里使用 es 进行搜索,那么也意味着,es 这边也要有数据,那怎么确保两边都有数据呢?一般写数据,是写在 mysql 中的(为了数据的安全性以及持久化等特性,mysql 用来存储全量数据),并且mysql 也会将数据同步给 es,从而实现数据的双写,将来也就是一个互补的效果了.

相关推荐
跨境卫士小树1 小时前
店铺矩阵崩塌前夜:跨境多账号运营的3个生死线
大数据·线性代数·矩阵
roman_日积跬步-终至千里2 小时前
【Flink 实战】Flink 中 Akka 通信与内存占用分析
大数据·flink
南风过闲庭2 小时前
操作系统研究
大数据·人工智能·科技·学习·ai·系统架构
阿里云大数据AI技术2 小时前
美的楼宇科技基于阿里云 EMR Serverless Spark 构建 LakeHouse 湖仓数据平台
大数据·阿里云·spark·serverless·emr
亿信华辰软件2 小时前
政策解读:制造企业如何实施数字化转型
大数据·数据分析·制造
资讯新鲜事3 小时前
重构建筑未来:中建海龙MiC建筑技术开启智慧建造新篇章
大数据·人工智能
Tianyanxiao3 小时前
【探商宝】2025年2月科技与商业热点头条:AI竞赛、量子计算与芯片市场新格局
大数据·人工智能·经验分享·数据分析
码上淘金4 小时前
Apache Flink架构深度解析:任务调度、算子数据同步与TaskSlot资源管理机制
大数据·架构·flink
fruge4 小时前
git上传 项目 把node_modules也上传至仓库了,在文件.gitignore 中忽略node_modules 依然不行
大数据·git·elasticsearch
python资深爱好者4 小时前
什么容错性以及Spark Streaming如何保证容错性
大数据·分布式·spark