作者tt0311 (turtle)
看板Database
標題[SQL ] 查詢條件的順序跟查詢速度的關係?
時間Thu Sep 30 23:54:39 2010
我有三個條件需要比對
並且我有對這三個條件做index
index做的順序是A, B, C
請問一下
為什麼
1.
select * from TABLE where B < 10 and C > 50 and A in
(select A from TABLE where B < 20 and C > 40)
2.
select * from TABLE where A in
(select A from TABLE where B < 20 and C > 40) and
B < 10 and C > 50
1的速度會比2來的快
記得看到的資料是說應該要照index的順序來排會比較好
另外還有個問題是
如果沒有作index的話
我的三個條件分別是用 "=", ">或<", "like" 來作比對
哪一種比對排在前面會對查詢速度有影響嗎
謝謝回答
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.194.102.114
1F:推 ThreeDay0905:子查詢一定比較慢 WHERE的規則是依照順序篩減資料 10/01 00:17
2F:→ tt0311:因為1跟2都有子查詢,比較好奇的是為什麼1比2快 10/01 00:23
3F:推 ThreeDay0905:第二個所有資料都進子查詢 第一個只有B<10&C>50才進 10/01 00:24
4F:→ tt0311:原來如此 謝謝 10/01 00:30