你不会是程序猿吧?

es 大批量别名引起的性能问题

Elasticsearch | 作者 yqbboy | 发布于2022年05月17日 | 阅读数:1851

目前我们的索引是按照数据量创建的,比方说1亿的doc会创建一个索引,但是别名是按天创建的。我们的正式环境存在这样的场景,总共有两年的别名全都指向了一个索引,这个索引的数据量大概在1千万左右。当我们查询的时候,会使用别名去查,当选择大范围的时间时(比方说时间跨度两年),后台会筛选出满足条件的别名(大概在600多个左右),导致的问题是,每次查询或聚合都非常慢。当我指定真实的索引时,查询性能就能提高非常多。而且使用大批量别名并不会走es缓存。
已邀请:

Charele - Cisco4321

赞同来自:

不知道你们的查询是写程序,还是直接发DSL的。
如果是写程序,加一个过程,先把别名转成实际的索引名,然后再用索引名查就可以了啊,
比如alias1-alias100指向索引x, alias101-alias200指向索引y
结果集就是(x, y),然后再用这个结果集来查。
 
又或者ES后台会自动进行这个“去重,转索引”的过程?

God_lockin

赞同来自:

可能是你别名太多,每个别名es都要计算一次,然后把结果merge在一起
 
可以试试只用一个别名跑一次,比比看时间

要回复问题请先登录注册