ES 既不像 MySQL 这样有严格的 Schema,也不像 MongoDB 那样完全无 Schema,而是介于两者之间。
1️⃣ ES 的 Schema 模式
ES 默认是 Schema-less(无模式) 的,答应动态添加字段。
但 ES 也支持 Schema(映射 Mapping),可以手动界说字段范例,类似 MySQL。
区别: MySQL 须要提前界说表布局,ES 则可以自动辨认字段范例(但保举手动界说)。
2️⃣ ES vs MySQL vs MongoDB
特性ES(Elasticsearch)MySQLMongoDBSchema 束缚动态 Schema,可手动界说严格 Schema(表必须有固定布局)无 Schema(每条纪录可有差别字段)数据存储格式JSON 文档表行列存储BSON 文档索引方式自动索引所有字段(全文检索优化)索引需手动创建可选索引扩展性分布式架构,横向扩展方便主从复制,扩展有限分片+副本,可扩展查询方式DSL 查询(类似 SQL)SQL 查询BSON 查询 3️⃣ ES 的 Schema 示例
|