MYSql:哪一个更适合获得ROWS? (IN())或foreach

时间:2016-05-29 07:45:39

标签: mysql sql database

我有一张表users包含 100000

现在,哪一个更适合SELECT?

:一种。

select * 
from users 
where user_id IN    
(5,12,5979,124,455594,5444,..........4568,10001,546,9979,21315);

`$user_ids = {5,12,5979,124,455594,5444,.......4568,10001,546,9979,21315};`

foreach ($user_ids as $id) {
     select * from users where user_id = $id;
}

我想知道更好的解决方案

3 个答案:

答案 0 :(得分:3)

第一个选项更好。使用select循环内部循环将在循环期间每次请求数据库服务器,这可能会影响系统的优化

答案 1 :(得分:1)

解决方案A((...)

中的user_id越好

使用解决方案A,您只执行一次查询

使用forarch循环每次都执行选择查询 这对性能产生了严重影响。

答案 2 :(得分:1)

最好使用 A 选项,因为每次循环都会查询数据库并且这是不正确的。您只需获取所有数据并根据您的要求使用它。因此,选择 A 选项将是一个好主意。