[SQL ] 查詢條件的順序跟查詢速度的關係?

看板Database作者 (turtle)時間13年前 (2010/09/30 23:54), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串1/1
我有三個條件需要比對 並且我有對這三個條件做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

10/01 00:17, , 1F
子查詢一定比較慢 WHERE的規則是依照順序篩減資料
10/01 00:17, 1F

10/01 00:23, , 2F
因為1跟2都有子查詢,比較好奇的是為什麼1比2快
10/01 00:23, 2F

10/01 00:24, , 3F
第二個所有資料都進子查詢 第一個只有B<10&C>50才進
10/01 00:24, 3F

10/01 00:30, , 4F
原來如此 謝謝
10/01 00:30, 4F
文章代碼(AID): #1CfBB1-Z (Database)