前言
经常会有人吐槽,Elasticsearch为什么查着查着突然就慢了?
笔者总结了常见的一些导致查询慢的场景,供大家排查。
go go go
Elasticsearch查询慢问题排查思路
Elasticsearch的查询慢的问题往往是由多种因素造成的,同时我们也需要遵循Elasticsearch的查询准则:ES适合top N的查询,不适合大数据量返回的查询。
场景1 内存参数配置不合理,文件系统缓存不足。
记得给你的Elasticsearch预留一定的内存给Lucene文件缓存使用哦。
场景2 查询范围过大,一次查询过多的分片,如全表扫描查询。
一次查询过多的分片,容易把内存撑爆,so,最好分批次查询,温柔点嘛。
场景3 进行深度翻页查询,如查询10000之后的结果。
进行深度翻页查询,如查询10000-10010的结果,这时候需要使用scroll查询了。
场景4 查询返回的结果集过大,如10w。
同样,这种查询太暴力了,建议使用scroll查询分批次返回,Elasticsearch没你想象的坚强。