2.2 ElasticSearch 特点
2.2.1 天然分片, 天然集群
es 把数据分成多个 shard,下图中的 P0-P2,多个shard可以组成一份完整的数据,这些shard可以分布在集群中的各个机器节点中。随着数据的不断增加,集群可以增加多个分片,把多个分片放到多个机子上,已达到负载均衡,横向扩展。
在实际运算过程中,每个查询任务提交到某一个节点,该节点必须负责将数据进行整理汇聚,再返回给客户端,也就是一个简单的节点上进行 Map 计算,在一个固定的节点上进行 Reduces 得到最终结果向客户端返回。
这种集群分片的机制造就 elasticsearch 强大的数据容量及运算扩展性。
2.2.2 天然索引
ES 所有数据都是默认进行索引的,这点和 mysql 正好相反. (mysql 是默认不加索引,要加索引必须特别说明,ES 只有不加索引才需要说明。)
而 ES 使用的是
倒排索引 和 Mysql 的 B+Tree 索引不同。