【发布时间】:2009-10-17 23:14:42
【问题描述】:
我有一个硬编码的值列表,例如:1、5、7、8 等等。
而且我必须从表中过滤掉上面列表中具有 ID 的行,所以我这样做:
Select
*
from myTable m
left join othertable t
on t.REF_ID = m.ID
where m.ID not in (1,5,7,8...)
但是当我在 othertable 和 myTable 中有更多值(如 1000)和更多行(100)时,此查询开始变慢。我有一个关于 REF_ID 和 ID 的索引。似乎“m.ID in (1,5,7,8) 中的部分是问题所在。
有没有更快的方法通过硬编码的值列表过滤掉行?
【问题讨论】:
标签: mysql performance optimization query-optimization