Php MySql SELECT查询中包含大量数字的IN子句处理速度较慢
我编写了一个查询,从Php MySql SELECT查询中包含大量数字的IN子句处理速度较慢,php,mysql,Php,Mysql,我编写了一个查询,从表1获取详细信息,其中包含以下条件子句: IN(number1,number2...... 到目前为止,多达323个条目。这些数字是table1的主键,它已从table2中提取并传递到IN-condition子句中 因此,我的查询速度变慢,需要13秒才能运行。有没有其他办法克服这个问题?如果我给出一些常量值(如PK id),查询将在正常时间工作。您也可以使用左连接来执行查询: 例如: SELECT T1.* FROM Table1 T1 LEFT JOIN Tab
表1
获取详细信息,其中包含以下条件子句:
IN(number1,number2......
到目前为止,多达323个条目。这些数字是table1
的主键,它已从table2
中提取并传递到IN-condition子句中
因此,我的查询速度变慢,需要13秒才能运行。有没有其他办法克服这个问题?如果我给出一些常量值(如PK id),查询将在正常时间工作。您也可以使用
左连接来执行查询:
例如:
SELECT T1.*
FROM Table1 T1 LEFT JOIN
Table2 T2 ON T1.numberfield = T2.numberfield
WHERE T2.someotherfield IS NOT NULL
这正是使用
中的进行查询的工作,请尝试下面的操作-
select a.* from table1 a join table2 b
on a.parent_id=b.id;
注:表1中应为父项id编制索引,假设id为表b的主键,则表示已编制索引 我编写了一个查询来获取详细信息
查询在哪里?共享您现有的查询。请在您的查询中包含EXPLAIN
的输出。包含完整的查询也会很有用,因为您可能认为您已经缩小了查询的范围,但是可能是查询的其他方面导致了查询的速度变慢。