一、索引与分片的关系
ES集群中索引可能由多个分片构成,并且每个分片可以拥有多个副本。通过将一个单独的索引分为多个分片,我们可以处理不能在一个单一的服务器上面运行的大型索引。由于每个分片可以有多个副本,通过将副本分配到多个服务器,可以提高查询的负载能力。
二、分片的合适数量
分片的创建多少比较合适。分片可以按照集群的数量相乘5,例如有2台集群,那么分片设置的数量为10(number_of_shards)是比较合适,分片会均匀分配到所有的集群,每个集群节点都有5主5副的分片,10主,10副。
标准是每个节点5个分片。
为什么是每个节点单个索引最多五个分片?这是因为es官方为了保证节点的安全,而去设置的一个限制。一次检索,单个索引在一个节点上命中的分片数只能有5个。假如单个节点大于5个分片,则需要串行去处理数据了
分片的合适存储大小10G-30G。低于这个值不分片也行,ES集群默认的分片数是1,高于这个值的就要考虑继续分片了。
再高的就需要把索引的粒度再降低,别集中一个索引集中大量的数据
三、以存在索引如何优化分片
索引分片数在索引创建好了之后就不能调整了,只能重建索引。
四、指定分片数
ES版本7.6.0 每个版本的方式不同文章来源:https://www.toymoban.com/news/detail-615842.html
PUT /_template/five_index
{
"index_patterns": ["*"], //*是通配符,这里是全部
"settings": {
"number_of_shards": 集群数*5 //集群的数量*5
}
}
五、创建索引
#创建索引
PUT testindex
#检查全部索引
GET /_cat/indices?v
#检查指定索引
GET /_cat/shards/testindex?v=true
可以看见了创建了20个分片(10主10副)文章来源地址https://www.toymoban.com/news/detail-615842.html
到了这里,关于Elasticsearch深入学习 (二) 索引创建及分片优化经验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!