我们遇到了一个小故障,它为设备生成了意外的数据量。我们的代码最终沿着 SELEXT * from XXX WHERE yyy IN (xxx,xxx,xxx....,xxxx) 创建了一个选择查询,这应该获取最近 5 天的数据,这通常根本不是问题,因为WHERE 字段被索引。
我们突然开始有大量缓慢的查询并使服务器陷入困境。在我们中止查询之前,查询运行了大约 5000 秒。在弄清楚发生了什么后发现,如果我们在 IN () 子句中有一个最多包含 33594 个参数的查询,则一切正常,查询在 200 毫秒内完成。如果我们添加一个参数,选择似乎永远运行。我们没有让一个人无限期地运行直到它完成所以我不确定它是否会完成但它们似乎至少持续几个小时......
选择中的数据约为 361.04KB。我们使用 MYSQL MYSQL_8_0_31 在 Google 云 SQL 上运行
关于什么可能导致这种行为的任何想法?