美文网首页
一个sandbox环境的sql不稳定复现问题

一个sandbox环境的sql不稳定复现问题

作者: 鸿雁长飞光不度 | 来源:发表于2023-09-21 19:33 被阅读0次

    今天上班qa反馈一个自动化的case没有过,经过排查提示是超时了。

    pq: canceling statement due to user request
    

    但是这个sql一直很快,自己测试也就几百毫秒。

     SELECT count(*)
    FROM "mealplan"
    WHERE ((valid_from <= '2023-09-22 10:50:19' AND (valid_to > '2023-09-22 10:50:20' OR valid_to IS NULL)) AND
           ("mealplan_id" IN (75457720114876416))) and deleted_at is null
    

    自己采取的措施和得出的结论

    1. 用explain看了一下执行语句,发现前面走的是索引mealplan_id + valid_from.
    image.png

    相当于valid_to和deleted_at是查出数据以后过滤得到的结果。

    2.看了一下监控,发现AAS比较高,数据库配置比较低,有些定时周期任务没有必要再sandbox跑的非常频繁,而且表里面有大量无用的数据,所以清理了一下无用的数据,并降低sandbox执行的频率,避免资源浪费。

    1. 和同事沟通发现他之前删除了一个带有deleted_at的索引,线上环境没有这个索引,是没有影响的。但是在sandbox环境很多数据都是删除的,所以这个deleted_at联合索引就很有必要了,所以把这个联合索引加回来。

    相关文章

      网友评论

          本文标题:一个sandbox环境的sql不稳定复现问题

          本文链接:https://www.haomeiwen.com/subject/dblzvdtx.html