關聯的效率

2021-09-08 01:54:45 字數 1813 閱讀 1139

1

--a段2--

--------------------

3select

so_d.*, 

45from

sal_orderlist so_d

6left

join

bas_bom bom_m 7on

(so_d.fmaterialkey 

=bom_m.fmaterialkey

8and

so_d.fcolorkey 

=bom_m.fcolorkey)

9inner

join

com_billinfo c_bf 

10on

(bom_m.fformkey 

=c_bf.fformkey) 

11and=1

)  12

13--

b段14

----------------------

15select

so_d.*, 

1617

from

sal_orderlist so_d

18left

join

bas_bom bom_m

19inner

join

com_billinfo c_bf 

20on

(bom_m.fformkey 

=c_bf.fformkey) 

21and=1

)22on(so_d.fmaterialkey 

=bom_m.fmaterialkey

23and

so_d.fcolorkey 

=bom_m.fcolorkey)

兩段指令碼達到的效果是一樣的

在查詢分析器中顯示計畫的效果a段占用了70%的開銷, b段占用30%開銷,可見b段效率比a段高 1

--a2select

wst.*3

from

com_materialwastebook wst

4left

join

b_material b_m 

onwst.fmaterialkey 

=b_m.fkey

5left

join

color b_clr 

onwst.fcolorkey 

=b_clr.fkey

6left

join

bas_items b_sz 

onwst.fsizekey 

=b_sz.fkey

7where

b_m.fkey 

isnot

null89

---b

10select

wst.*11

from

com_materialwastebook wst

12inner

join

b_material b_m 

onwst.fmaterialkey 

=b_m.fkey

13inner

join

color b_clr 

onwst.fcolorkey 

=b_clr.fkey

14inner

join

bas_items b_sz 

onwst.fsizekey 

=b_sz.fkey15

上面兩段

查詢開銷

a 佔98%

b 佔2%

但是實際執行時,在100多w的記錄中a執行只需25秒左右,b需要50秒(結果執行多次)

關於thinkphp關聯模型的效率問題

以前聽說過thinkphp關聯模型效率比較低,但是一直沒去看源 現在也沒看 今天寫rbac的時候才感覺到 user表,字段 id,nickname role表,字段 id,remark role user表,user id,role id 將所有使用者列出來,並顯示其所在使用者組 一 使用think...

SQL表關聯中的邏輯與效率

入職後用了sql也有一年了,對sql和各個資料庫的了解也漸漸多了起來。感覺sql的關聯蠻有意思的,在這裡寫一下自己對這玩意的認識的總結吧。本篇主要是通過目前接觸到的兩個資料庫 vertica和impala oracle和mysql也有,但是個人用的不多 的執行計畫來寫的,優化器做到差不多地步的資料庫...

子查詢和關聯查詢 效率

msdn對子查詢的定義是這樣的 可以將乙個查詢的結果用作另乙個查詢的輸入。可以將子查詢的結果用作使用 in 函式 exists 運算子或 from 子句的語句。一條好的值得稱讚的規則是盡量用連線代替所有的子查詢。優化器有時可以自動將子查詢 扁平化 並且用常規或外連線代替。但那樣也不總是有效。明確的連...