三个节点的集群,一个2000万数据、3主1副shard索引,为了提高查询速度,使用了路由功能。写入时将字段field1设置为路由,查询时将field1的一个值value1做为路由参数进行查询,发现使用路由后查询响应变得很慢,没添加路由时得响应时间为50ms左右,使用路由后变为110ms了。
包含value1的文档有14w左右,如果不使用路由,会在三个shard并行查询,每个shard上查询处理的数据量在三四万左右;而使用路由后,只会在一个shard上查询,这个shard需要处理全部的14w数据,拖慢整个查询。所以如果使用的路由,匹配的数据量较大,可能会起副作用??
包含value1的文档有14w左右,如果不使用路由,会在三个shard并行查询,每个shard上查询处理的数据量在三四万左右;而使用路由后,只会在一个shard上查询,这个shard需要处理全部的14w数据,拖慢整个查询。所以如果使用的路由,匹配的数据量较大,可能会起副作用??
1 个回复
zcc_vv - 95
赞同来自: