我有一個相當簡單的表格,大約有一百萬行。「where in」子句的實際限制
id | my_col | other1 | other 2 | ...
該表中有大約15k個不同的my_col值,我有一個my_col索引。我有一組7k my_col值,我需要從此表中刪除。
在SQL中做什麼更有效率的事情(我目前正在使用MySQL,但將來可能會移植到MS SQL)。
是不是a)在我的java應用程序代碼中,遍歷所有my_col值並在每個值上調用sql delete。
for (String my_colValue : listMyCol) {
[delete from my_table where my_col = my_colValue]
}
或b)使用「where in」子句構建包含所有這些值的單個SQL [large]語句?
delete from my_table where my_col in ('aaa', 'aab', 'aac', ...)
我猜這是b),但我不確定是否在此「where in」子句中指定的7k值變得低效。
對於它的價值,我的應用服務器和數據庫服務器都託管在亞馬遜上,但在不同的層次上。
請停止標記標題。你已經做了將近2年的時間了嗎? –
調度7k SQL獨立查詢顯然總是最慢的「解決方案」。 –