"id(ids)"的表现?

Moo*_*oon 4 mysql performance

可以使用以下查询吗?性能如何?

select * from table where id not in ( 2000 or much more ids here)
Run Code Online (Sandbox Code Playgroud)

我的初始测试非常快,但我想这是因为我是唯一正在使用服务器的人.

Mar*_*ers 9

如果你有一个索引,它可以非常快.

然而,MySQL中存在一个错误(可能在MySQL 5.5中修复),如果没有索引,它将不会很慢,它将非常慢.这是因为子查询可以被检测为DEPENDENT SUBQUERY(相关子查询),即使它不是.您可以通过运行EXPLAIN SELECT ...并检查key子查询的非NULL 来查看MySQL是否使用了正确的查询计划.我已经发布了另一篇有关此错误的帖子,其中包含更多细节

您还可以考虑重写您的查询以使用JOIN而不是IN避免此错误.