SQL优化- in和not in

Posted java懒洋洋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL优化- in和not in相关的知识,希望对你有一定的参考价值。

in不会导致索引失效,但最终数据库会将in语句解析为or语句,eg:

select * from T_MAIN_PROCESS t where t.audit_status_code in (‘05‘,‘07‘)。 查看执行计划会被解析成:

select * from T_MAIN_PROCESS t where t.audit_status_code=‘05‘ or t.audit_status_code=‘07‘

所以:可用or代替in,减少数据库解析in语句时间。

 

not in 会导致索引失效。所以

以上是关于SQL优化- in和not in的主要内容,如果未能解决你的问题,请参考以下文章

没有 Not In 和 In 使用连接的 SQL 查询优化

sql优化,in与exist , not in与not exist 的区别

使用 NOT IN(Oracle Sql Developer)的查询性能优化

Sql server not in优化

MS Sql 优化步骤及优化not in一例

使用 JOIN 而不是 NOT IN 优化 SQL 查询