初识ES-es与mysql的概念对比
es的一些概念
elasticsearch中有很多獨有的概念,與mysql中略有差別,但也有相似之處。
文檔和字段
elasticsearch是面向文檔(Document)存儲的,可以是數據庫中的一條商品數據,一個訂單信息。文檔數據會被序列化為json格式后存儲在elasticsearch中:
而Json文檔中往往包含很多的字段(Field),類似于數據庫中的列。
索引和映射
索引(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 |
是不是說,我們學習了elasticsearch就不再需要mysql了呢?
并不是如此,兩者各自有自己的擅長支出:
-
Mysql:擅長事務類型操作,可以確保數據的安全和一致性
-
Elasticsearch:擅長海量數據的搜索、分析、計算
因此在企業中,往往是兩者結合使用:
-
對安全性要求較高的寫操作,使用mysql實現
-
對查詢性能要求較高的搜索需求,使用elasticsearch實現
-
兩者再基于某種方式,實現數據的同步,保證一致性
?
總結
以上是生活随笔為你收集整理的初识ES-es与mysql的概念对比的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初识ES-倒排索引
- 下一篇: Linux 系统安装MySQL