elasticsearch 分片(Shards)

分片的设置

  当有大量的文档时,由于内存的限制、磁盘处理能力不足、无法足够快的响应客户端的请求等,一个节点可能不够。这种情况下,数据可以分为较小的分片。每个分片放到不同的服务器上。
当你查询的索引分布在多个分片上时,ES会把查询发送给每个相关的分片,并将结果组合在一起,而应用程序并不知道分片的存在。即:这个过程对用户来说是透明的。

创建 IndexName 索引时候,在 Mapping 中可以如下设置分片 (curl)

PUT indexName
{
    "settings": {
        "number_of_shards": 5
    }
}

 Elastic 官方文档建议:一个 Node 最好不要多于三个 shards。

在进行历史数据入库的时候,建议先在settings中将备份设为0,refresh关闭来提升索引效率,数据入库完毕可恢复需要值。

"settings": {
    "number_of_shards": 5,
    "number_of_replicas": 0,
    "refresh_interval": -1
  }

索引优化

    驴之所以倔,是因为它不知变通。

    树挪死,人挪活。关联处理不了,我把几个表分开索引了。分开索引,检索时分别查询也能一定程度上满足业务需求,只是单次查询量有上限。这是查询效率与查询量的取舍。分开索引后有两条重要的原则:

    (1)shard数建议为集群节点数的1.5到3倍之间

    (2)每个分片数据量应在30gb到50gb为宜

https://blog.csdn.net/yzhujue/article/details/53128813?utm_source=blogxgwz0

猜你喜欢

转载自www.cnblogs.com/cnki/p/9828312.html
今日推荐