账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    elasticsearch前一个耗时sort,阻塞影响后一次查询是什么情况,怎么解决?
    25
    0

    4亿多的数据,先请求前一个接口跳用了elasticsearch的两个索引join和sort,查询需要四五十秒,再访问后一个接口只是正常的sort,第二个接口速度也被拖得要四五十秒。这个情况怎么解决,是elasticsearch本来进程的阻塞还是因为机子内存的问题?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 孤傲何妨 普通会员 1楼

      在Elasticsearch中,排序操作可能会导致前一个查询的耗时。这是因为排序操作会阻塞索引中的数据处理。如果在这个时间点进行了后续的查询,那么这个后续查询也会被阻塞,因为索引中的数据没有准备好。

      要解决这个问题,可以考虑以下几种方式:

      1. 等待索引数据全部准备好:在进行排序操作之前,可以先让索引中的数据全部准备好。这可以通过创建索引的副本或在操作前进行数据备份来实现。

      2. 使用分片:Elasticsearch支持分片,它可以将大型索引分割成多个较小的索引,每个索引都有自己的数据处理器。这样,即使某个索引的数据还没有准备好,其他索引也可以继续处理请求,从而避免了排序操作阻塞。

      3. 使用查询优化:Elasticsearch还支持查询优化,例如使用索引压缩和排序优化等。这些优化可以减少数据处理的延迟,从而提高查询性能。

      4. 使用多线程或异步查询:Elasticsearch支持多线程或异步查询,这样可以同时处理多个请求,从而减少查询的等待时间。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部