mysql - 如何減少使用或者不用LEFT JOIN查詢?
問(wèn)題描述
問(wèn)題解答
回答1:單獨(dú)查詢,使用鍵值對(duì)
回答2:很簡(jiǎn)單也很實(shí)用的一個(gè)方案就是建立中間表, 用空間換時(shí)間。
另外當(dāng)數(shù)據(jù)量大到一定程度情況下,考慮分庫(kù)分表,可以看看mycat中間件。
回答3:個(gè)人建議先一個(gè)個(gè)表排除看是哪個(gè)表影響查詢的速度,確定是哪個(gè)表之后,然后再根據(jù)其做索引優(yōu)化
回答4:從數(shù)據(jù)庫(kù)優(yōu)化角度出發(fā),最后結(jié)果就一個(gè)數(shù)count(*)大量的關(guān)聯(lián)導(dǎo)致內(nèi)存消耗跟時(shí)間浪費(fèi).
給個(gè)思路吧:將sql結(jié)果做成如下:
最后count(*)等于每一行數(shù)量相乘最后相加,即:(數(shù)量11*數(shù)量12*...*數(shù)量16)+(數(shù)量21*...*數(shù)量26)以減少大量的笛卡爾積.
sql:
select t_for_sale.id, nvl(t1.count1, 0), ...left join (select id, count(*) count1 from t_user group by id) t1 on t1.id=t_for_sale.id....from t_for_sale
相關(guān)文章:
1. objective-c - 微信快捷發(fā)送最近一張圖片是如何實(shí)現(xiàn)的?2. 導(dǎo)入數(shù)據(jù)庫(kù)不成功3. mysql - 關(guān)于數(shù)據(jù)緩存策略方面的疑惑4. mysql如何配置遠(yuǎn)程php外網(wǎng)鏈接數(shù)據(jù)庫(kù)5. mysql無(wú)法刪除字段(錯(cuò)誤1091),但是對(duì)該字段設(shè)置主鍵后就可刪除,為什么?6. 老師 我是一個(gè)沒(méi)有學(xué)過(guò)php語(yǔ)言的準(zhǔn)畢業(yè)生 我希望您能幫我一下7. mysql - eclispe無(wú)法打開(kāi)數(shù)據(jù)庫(kù)連接8. 數(shù)據(jù)庫(kù) - mysql中有沒(méi)查看數(shù)據(jù)大小的函數(shù)??9. PHP單例模式10. mysql如何判斷數(shù)據(jù)不存在則插入呢?
