悟空,拿我的打狗棒来

用_update只对文档部分字段更新的话性能高吗?

Elasticsearch | 作者 wangxinrong | 发布于2023年12月20日 | 阅读数:3515

我的一个索引有上百个字段,这些字段都有可能被各种业务需求查询到,所以mapping中都做了配置。
大部分是不常更新的属性,只有几个实时性要求比较高,需要频繁更新的字段,值都是数字,内容比较少。
 
现在索引写入频率有1-2k/s,每次只更新变化的字段,类似下面这样:POST xxx_index/_update/1 { "doc": { "guid": "xxx", "xxx_cnt": 120, "xxx_ratio": 0.05 } }
 
我想确认下,是不是这样只有update时指定的字段会做索引和存储,以及向副本分片同步,其他字段即使再多也不会影响性能?
 
现在看起来似乎不是,我的索引配置成了1分片,9副本,现在看监控,这个主分片的节点cpu很高,带宽也很高,感觉如果只是索引了部分更新的这些少量字段,只有这些字段参与索引,不会有这么高的cpu和带宽。是不是它最终还是转换成了整个文档的_index操作,所有字段都根据mapping配置做了索引和存储?
 
已邀请:

FFFrp

赞同来自: zisonmo

update 最终还是index,中间还复杂了,需要把之前的数据查出来

要回复问题请先登录注册