文章詳情頁
mysql - 循環(huán)中逐個(gè)查詢數(shù)據(jù)庫和聯(lián)表一次性查詢數(shù)據(jù)庫分別適用于哪種場景?
瀏覽:80日期:2022-06-20 16:31:04
問題描述
一般來說循環(huán)中逐條查詢的效率是比較低的,每次都產(chǎn)生連接以及并發(fā)的開銷。是否有些場景是適合在循環(huán)中逐個(gè)去查詢,而不適合一次性查表的場景呢?
問題解答
回答1:不要在循環(huán)中去查詢, 看不到任何在適合在循環(huán)中查詢的理由!如果你是一個(gè)離線任務(wù), 不用像web請求那樣即時(shí)返回, 并且數(shù)據(jù)量也比較大, 那合理的做法也是你對查詢做一定的切割, 每次獲取幾十到幾百的數(shù)據(jù)(過多的數(shù)據(jù)也會導(dǎo)致傳輸緩慢)最后, 即使迫不得已真的要在循環(huán)中去查詢了, 你也應(yīng)該使用同一個(gè)連接, 而不是每次都重新建立連接!
回答2:有,例如:
SELECT * FROM tableWHERE ...ORDER BY ..LIMIT 10
這種時(shí)候如果WHERE條件有若干個(gè)(例如id=1,id=2),就只能分開查了。雖然GROUP BY也可以,但GROUP BY在數(shù)據(jù)量大的時(shí)候性能可能比較低,一次GROUP BY查詢的時(shí)長可能比分開多次查詢的時(shí)間還要長。
相關(guān)文章:
1. thinkphp3 count()方法必須加上字段?2. python中return 語句與 分支語句連用問題3. mysql 5個(gè)left關(guān)鍵 然后再用搜索條件 幾千條數(shù)據(jù)就會卡,如何解決呢4. python - angular route 與 django urls 沖突怎么解決?5. 這是什么情況???6. 微信內(nèi)網(wǎng)頁上傳圖片問題7. 非root安裝MySQL5.6報(bào)錯(cuò),求助!!!8. 輸入地址報(bào)以下截圖錯(cuò)誤,怎么辦?9. node.js - nodejs中mysql子查詢返回多行結(jié)果怎么處理?10. mysql - 瞬間流量很高的網(wǎng)站,要頻繁的插入數(shù)據(jù)到數(shù)據(jù)庫,應(yīng)該怎么解決這個(gè)問題?
排行榜

熱門標(biāo)簽