Heim > Fragen und Antworten > Hauptteil
一般来说循环中逐条查询的效率是比较低的,每次都产生连接以及并发的开销。
是否有些场景是适合在循环中逐个去查询,而不适合一次性查表的场景呢?
阿神2017-04-17 15:02:31
不要在循环中去查询, 看不到任何在适合在循环中查询的理由!
如果你是一个离线任务, 不用像web请求那样即时返回, 并且数据量也比较大, 那合理的做法也是你对查询做一定的切割, 每次获取几十到几百的数据(过多的数据也会导致传输缓慢)
最后, 即使迫不得已真的要在循环中去查询了, 你也应该使用同一个连接, 而不是每次都重新建立连接!
黄舟2017-04-17 15:02:31
有,例如:
SELECT * FROM table
WHERE ...
ORDER BY ..
LIMIT 10
这种时候如果WHERE
条件有若干个(例如id=1,id=2),就只能分开查了。
虽然GROUP BY
也可以,但GROUP BY
在数据量大的时候性能可能比较低,一次GROUP BY
查询的时长可能比分开多次查询的时间还要长。