首頁  >  問答  >  主體

mysql - 循环中逐个查询数据库和联表一次性查询数据库分别适用于哪种场景?

一般来说循环中逐条查询的效率是比较低的,每次都产生连接以及并发的开销。
是否有些场景是适合在循环中逐个去查询,而不适合一次性查表的场景呢?

伊谢尔伦伊谢尔伦2742 天前857

全部回覆(2)我來回復

  • 阿神

    阿神2017-04-17 15:02:31

    不要在循環中去查詢, 看不到任何在適合在循環中查詢的理由!
    如果你是一個離線任務, 不用像web請求那樣即時返回, 並且數據量也比較大, 那合理的做法也是你對查詢做一定的切割, 每次獲取幾十到幾百的數據(過多的數據也會導致傳輸緩慢)
    最後, 即使迫不得已真的要在循環中去查詢了, 你也應該使用同一個連接, 而不是每次都重新建立連接!

    回覆
    0
  • 黄舟

    黄舟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查詢的時長可能比分開多次查詢的時間還要長。

    回覆
    0
  • 取消回覆