我正在两步中运行一个MYSQL查询。首先,我使用一个查询获取一个id列表,然后使用第二个查询检索这些id的数据,类似于
这种方法可行,但感觉并不正确;此外,我担心它无法扩展。目前,我正在测试一个包含10,000条记录的数据库,其中“IN”子句中有400个ID(即
这种类型的查询的性能瓶颈在哪里(速度,内存等)?有没有重构这种类型查询的想法,使其更加出色(例如,是否值得研究存储过程)?
SELECT * FROM data WHERE id in (id1, id2 ...)
。我知道这听起来有点hacky,但由于查询非常复杂; 第一个涉及大量几何和三角函数,第二个涉及许多不同的连接,所以我以这种方式完成了它们。我相信它们可以写成单个查询,但我的MYSQL水平还不够。这种方法可行,但感觉并不正确;此外,我担心它无法扩展。目前,我正在测试一个包含10,000条记录的数据库,其中“IN”子句中有400个ID(即
IN (id1, id2 ... id400)
),性能良好。但是如果有100万条记录呢?这种类型的查询的性能瓶颈在哪里(速度,内存等)?有没有重构这种类型查询的想法,使其更加出色(例如,是否值得研究存储过程)?