MAIN_TABLE中有超過1億條記錄; SECURITY_TABLE中有超過2.5億條記錄。我試圖從MAIN_TABLE中檢索符合過濾條件的對象,並且當前用戶也可以訪問(訪問記錄存儲在security_table中)。我使用類似以下內容進行查詢:短語SQL語句
01 select col1, col2, col3 from main_table
02 where (col4 like '%something%'
03 or col4 like '%something else%'
04 or col4 like "%some other thing%')
05 AND
06 col1 in (select st_col1 from security_table
07 where st_id in (
08 select col1 from main_table
09 where (col4 like '%something%'
10 or col4 like '%something else%'
11 or col4 like "%some other thing%'
12 )
13 )
14 AND
15 st_user_id = current_user_id
16)
如果我必須在線路過濾標準2-4(標準A)五場比賽,將過濾條件在9-11行(標準B)重新掃描MAIN_TABLE中的全部1億條記錄,或僅包含2-4行返回的5條記錄?
+1 RDBMS將決定如何應用您的子句。 – Matthew