在使用not in查询时,建议使用exists或join方式

使用not in 如果子查询中返回的任意一条记录包含空值,则查询不返回任何记录,而且not in 会对内外表进行全表扫描,没有用到索引。而not exists子查询仍然会用到索引,所以无论那个表大,not exists都会比not in 快。另外,如果子查询表大适合用exists,表小适合用in。并且MySQL官方文档有说明,in关键字适合确定数量的情况,一般效率较低,不推荐使用。能用in关键字的语句都可以转化为使用join的语句。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容