完全相同的sql,多次执行会报错

版本:5.2.3
问题背景:
当前tidb集群设置的mem-quota-query参数为32GB,执行完全相同的sql,正常情况下一分钟出结果,消耗内存为2.7 GiB,异常时程序会报错:err="Out Of Memory Quota!,同时tidb日志中有这样的报错:
[2022/05/10 18:03:20.082 +08:00] [ERROR] [distsql.go:988] [“tableWorker in IndexLookUpExecutor panicked”] [conn=3688349] [stack="goroutine 1270313307 [running]:
这种问题怎么解决呢。

1 个赞

SQL 能否优化么?
或者上传下执行计划,帮你看看

1 个赞

plan.txt (156.8 KB)

是不是表的统计信息不准? 这才 500 + 4xx + 1241 条记录,就 2.7GB 么

image
我发你的这个都不止2.7g了

我刚连续执行了两次,第一次就out of memeory了,第二次就没事,同一个session

1 个赞

busiItem这个表能不能加个时间范围限制查询数据量

谢谢,我跟开发反馈一下这个表目前是busiItem.id < 57845861 and busiItem.delete_at = 0这两个过滤条件,结果集5kw行,我id改成busiItem.id < 17845861,整个sql内存能缩小到18g,就不会报错了。我跟开发说下

1 个赞


这是busiItem.id < 57845861时两条完全相同的sql的actrow,为啥会差这么多呢

1 个赞

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。