第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

多表聯(lián)查的sql語句怎么優(yōu)化查詢速度

多表聯(lián)查的sql語句怎么優(yōu)化查詢速度

手掌心 2019-05-03 22:10:03
表-數(shù)據(jù)量:A-15W,B-15W、C-15W、D-90W、E-900WA、B、C表 是一對一關(guān)系,C到D平均一對六,D到E平均一對十SQL:SelectA.F1, A.F2, A.F3, B.F1, B.F2, B.F3, …… E.F1, E.F2, E.F3FromA, B, C, D, EWhereA.id = B.A_idand B.id = C.B_idand C.id = D.C_idand D.id = E.D_idand A.F1 = 'A'and B.F1 = 'B'and E.F1 = 'E'Order by A.F2 desc整個SQL查下來要16秒,請教如何優(yōu)化下問題補充:各表的id字段是主鍵,外鍵依次關(guān)聯(lián),如B.A_id關(guān)聯(lián)到A表主鍵且各表主鍵、where子句的條件都建立了索引
查看完整描述

3 回答

?
溫溫醬

TA貢獻1752條經(jīng)驗 獲得超4個贊

提一點個人的看法,因為不知道具體的執(zhí)行計劃是什么所以未必一定有用。
我看你最后的條件中有三個條件
A.F1 = 'A'
and B.F1 = 'B'
and E.F1 = 'E'
如果執(zhí)行計劃中這三個是先查詢的,那么我的想法就沒用了,如果不是先查詢的,那么個人局的,可以吧E.F1 = 'E'寫為一個關(guān)于E表的子查詢,然后再去關(guān)聯(lián),這樣E表的900W數(shù)據(jù)可以先進行一遍過濾,關(guān)聯(lián)的數(shù)據(jù)會減少一些。AB兩個表也可以這樣操作,但是具體結(jié)果就不知道了,只能是試驗。畢竟語句太簡單,從語句本身來說沒什么。
還有一個就是如果可能的話,是不是可以考慮建立外鍵,前面的關(guān)聯(lián)能看出是一堆專有ID,如果專表的id(比如b表的id,A表的id等)能建主鍵,其他表能建立關(guān)于這個id的外鍵,那么應(yīng)該也能快一些。

查看完整回答
反對 回復(fù) 2019-05-03
  • 3 回答
  • 0 關(guān)注
  • 4858 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號