欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Why does the execution of Mysql query with a choice of IN (xx, xxx, xx) containing 33594 parameters take several hours when running with 33595 or more parameters?

最编程 2024-08-12 14:00:24
...

我们有一个小故障,为一个设备产生了意想不到的数据量。我们的代码在XXX创建了一个SELEXT *这样的SELEXT*查询,其中yyy (xxx,xxx,xxx.,xxxx)应该获取最后5天的数据,这通常不是问题,因为WHERE字段是索引的。

我们突然开始有大量缓慢的查询,并使服务器陷入困境。在我们中止查询之前,这些查询的运行时间大约为5000秒。如果我们在IN ()子句中有最多33594个参数的查询,那么每件事情都可以正常工作,查询在200 it内完成。如果我们添加一个参数,select似乎将永远运行。在它完成之前,我们还没有让它不确定地运行,所以我不确定它是否会完成,但它们似乎至少持续了几个小时。

select中的数据大约为361.04KB。我们在Google上运行MYSQL MYSQL_8_0_31

对造成这种行为的原因有什么想法吗?