0

我在数据库中有几乎十万条记录......我想根据某些条件选择记录......比如

$val 是一个数组...所以我有一些像这样的选项

使用 for 循环

for(){
SELECT * FROM TABLE WHERE ID IN($val[$i]);
}

否则连接......就像

$value=$val[$i].','.$val[$i];

SELECT * FROM TABLE WHERE ID IN($value);

或者我可以去 OR 条件

SELECT * FROM TABLE WHERE(ID=$value1 OR ID=$value);

哪个是最好的解决方案??

4

2 回答 2

1

选项 1 比选项 2 和 3 慢很多。一个查询总是更快。通过这种方式,您可以节省与服务器进行网络通信的时间,这会花费大部分时间进行简单(设计合理)的查询。

要在选项 2 和 3 之间进行选择,请参阅MYSQL OR 与 IN 性能

于 2012-07-16T16:45:32.177 回答
0

这取决于你需要做什么。

如果您想单独处理每个结果集,我会使用该for方法。

如果您需要一起处理所有数据,我会采用这种in方法。

无论哪种方式,请检查您的表是否已正确索引。

于 2012-07-16T16:47:48.130 回答