一、什么是分片(Shard)?
分片是Elasticsearch(ES)中数据存储和处理的最小单元,本质是一个独立的倒排索引(Inverted Index)实例。ES通过将一个完整的索引拆分成多个分片,实现分布式存储和计算。
核心特性:
每个分片可独立存储数据、处理查询,支持跨分片并行操作。
分片分为两类:
主分片(Primary Shard):负责数据的写入和原始存储,数量在创建索引时固定(默认5个)。
副本分片(Replica Shard):主分片的副本,用于数据冗余和查询负载均衡,数量可动态调整(默认1个)。
二、为什么要使用分片?
1. 突破单机存储与性能瓶颈
单机限制: 若索引数据量超过单节点存储上限(如TB级数据),或查询压力超过单节点计算能力(如高并发搜索),单机架构将无法处理。
分片的作用:
将数据分散到多个节点存储(每个分片存储部分数据),突破单机存储限制。
并行处理查询请求(多个分片同时