一般来说循环中逐条查询的效率是比较低的,每次都产生连接以及并发的开销。是否有些场景是适合在循环中逐个去查询,而不适合一次性查表的场景呢?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
不要在循環中去查詢, 看不到任何在適合在循環中查詢的理由!如果你是一個離線任務, 不用像web請求那樣即時返回, 並且數據量也比較大, 那合理的做法也是你對查詢做一定的切割, 每次獲取幾十到幾百的數據(過多的數據也會導致傳輸緩慢)最後, 即使迫不得已真的要在循環中去查詢了, 你也應該使用同一個連接, 而不是每次都重新建立連接!
有,例如:
SELECT * FROM table WHERE ... ORDER BY .. LIMIT 10
這種時候如果WHERE條件有若干個(例如id=1,id=2),就只能分開查了。 雖然GROUP BY也可以,但GROUP BY在資料量大的時候效能可能比較低,一次GROUP BY查詢的時長可能比分開多次查詢的時間還要長。
WHERE
GROUP BY
不要在循環中去查詢, 看不到任何在適合在循環中查詢的理由!
如果你是一個離線任務, 不用像web請求那樣即時返回, 並且數據量也比較大, 那合理的做法也是你對查詢做一定的切割, 每次獲取幾十到幾百的數據(過多的數據也會導致傳輸緩慢)
最後, 即使迫不得已真的要在循環中去查詢了, 你也應該使用同一個連接, 而不是每次都重新建立連接!
有,例如:
這種時候如果
WHERE
條件有若干個(例如id=1,id=2),就只能分開查了。雖然
GROUP BY
也可以,但GROUP BY
在資料量大的時候效能可能比較低,一次GROUP BY
查詢的時長可能比分開多次查詢的時間還要長。