【求助】SQL 查询条件的时间间隔增加一个月,TiKV 执行时间却变成10倍

嗯,是的,你说的没错。但是现在是刚好测试的时候发现了这么一个问题,想知道时间间隔达到7个月后,TiKV 的哪部分达到了瓶颈导致查询耗时突然翻倍这么多。

有添加 tiflash 再测试过吗?看起来 tiflash 更合适一些。

看下rocksdb-kv的blockcache命中率,是不是执行7个月的时候就降了。


网上找的图,是不是有一种可能:你扫描6个月的时候,数据大部分通过read的1、2、3获取到了,也就是都在内存中。如果再多一个月,就需要磁盘io了。或者你干脆执行2次sql,把相应的监控指标贴上来,其他大佬们分分钟给你分析出结果。

添加过,TiFlash 在时间间隔达到7个月后确实更快,只需要 5s。这里还有一个问题就是明明 TiFlash 快这么多,为什么优化器没有选择走 TiFlash 查询。

我下午找个时间把监控导出来

已解决。重启集群后重新执行查询,报错 Out Of Memory Quota,调整 mem-quota-query 大小后,七个月时间间隔查询耗时平均为 10s。
这个问题还是很奇怪,查询内存不足的话为什么之前没有报错,我去看之前的查询计划发现同一个查询语句查询内存占用在 500M 左右,重启后却飙升到 1.5G 左右。

你应该取回的数据变多了 特别是varchar 占内存挺严重的