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. node.js - vue2 的npm run dev 卡死... 網(wǎng)頁(yè)無(wú)法打開(kāi). 8080端口沒(méi)有被占用...2. node.js - vue-cll+sass 樣式不出來(lái) 已經(jīng)npm install sass、 sass-loader了3. 微信無(wú)法掃描phpqrcode生成的二維碼4. javascript - 百度echarts圖表如何修改5. index.php錯(cuò)誤,求指點(diǎn)6. vim - docker中新的ubuntu12.04鏡像,運(yùn)行vi提示,找不到命名.7. 用PHP怎么在微信公眾號(hào)里使用模板信息,公眾號(hào)還未做開(kāi)發(fā)?8. python2.7 - django 無(wú)法連接redis9. sqlserver - mysql如何查詢多列重復(fù)的數(shù)據(jù)個(gè)數(shù)?10. python - 在ubuntu下安裝scrapy過(guò)程遇到的問(wèn)題
