SQL查询优化,MySQL in和exists的区别总结

in和exists的差异(挺大):1、从语义上来说:in是去匹配in后的结果集;exists是条件上的二次匹配,匹配和结果集内相同的数据。2、实现的效果差异不大

这篇文章给大家聊聊关于SQL查询优化,MySQL in和exists的区别总结,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

in,in后面的数据先run==得到结果集,然后进行匹配;

exits则相反,先运行外部结果,然后匹配exists中的数据;

执行顺序和效率:

SQL查询优化,MySQL in和exists的区别总结

1.in先执行子查询,将子查询的结果存入缓存,然后再执行外查询。适合子查询结果集较小时使用。

2.exists先执行外查询,并将外查询的每个结果放入内查询中进行比较。如果存在则保留外层查询的结果,否则删除。适用于外层结果集小于内层表的情况。

总结:in中的内部数据应该少一些,exists中的外部数据也应该少一些,这样可以提高效率。

SQL查询优化,MySQL in和exists的区别总结

注意:

contains 用于检查子查询是否至少返回一行数据。子查询实际上并不返回任何数据,而是返回true或false。

select * from health_sys_user WHERE user_id in (SELECT user_id FROM health_sys_user WHERE user_id=1 OR user_id=26);select * from health_sys_user WHERE 存在(SELECT * FROM health_sys_role where role_id=26);

SQL查询优化,MySQL in和exists的区别总结

用户评论

SQL查询优化,MySQL in和exists的区别总结
经典的对白

一直觉得in子句效率更高啊,没想到 EXISTS 更适合这种情况。这篇文章帮我理清了思路!

    有5位网友表示赞同!

SQL查询优化,MySQL in和exists的区别总结
你身上有刺,别扎我

最近在写一些复杂的查询语句,总是感觉性能比较低,这个知识点看来很重要啊!以后要用用看看EXISTS能不能提升效率。

    有5位网友表示赞同!

SQL查询优化,MySQL in和exists的区别总结
抚涟i

我也是经常用 IN 和 EXISTS 子句的,但有时还是容易分不清他们优缺点。这篇文章解释的很清晰了,太感谢了!学习到了新的知识!

    有18位网友表示赞同!

SQL查询优化,MySQL in和exists的区别总结
夏日倾情

这篇博客说的很清楚,帮助我理解了一些之前不太明白的地方。确实 in 语法简洁方便,但对于大数据量情况,EXISTS 更有效率。

    有14位网友表示赞同!

SQL查询优化,MySQL in和exists的区别总结
淡淡の清香

MySQL 的SQL查询优化真是让人头疼的问题! 这篇文章给了一个很好的对比和建议,让我对 IN 和 EXISTS 的选择有了更深入的了解。感谢分享!

    有12位网友表示赞同!

SQL查询优化,MySQL in和exists的区别总结
冷落了♂自己·

这篇文章总结的太好了!以前一直分不清 IN 和 EXISTS 的区别和优缺点,现在终于看懂了,以后查询语句我一定要记得用EXISTS。

    有12位网友表示赞同!

SQL查询优化,MySQL in和exists的区别总结
良人凉人

其实有时候 EXISTS 也可以做一些简单的数据过滤操作,比 IN 子句要灵活很多

    有12位网友表示赞同!

SQL查询优化,MySQL in和exists的区别总结
致命伤

学习优化 SQL 查询语句是一项长期任务。这篇文章虽然比较基础,但对入门的人来说非常实用!感谢分享!

    有13位网友表示赞同!

SQL查询优化,MySQL in和exists的区别总结
采姑娘的小蘑菇

我觉得 IN 子句更加易于理解和使用,即使数据量较大也应该先尝试这个方法再考虑 EXISTS 优化。EXISTS 语法反而相对复杂一些。

    有18位网友表示赞同!

SQL查询优化,MySQL in和exists的区别总结
残留の笑颜

对于小型应用程序而言,两者的性能差异可能不太明显,但对于大数据量的场景,EXISTS 子句带来的效率提升的确不可忽视!

    有17位网友表示赞同!

SQL查询优化,MySQL in和exists的区别总结
执笔画眉

我用过 EXISTS 后发现执行效率确实提高了很多,尤其是在处理关联查询时效果显著。 以后我会把 IN 和 Exists 的优缺点牢记在心了。

    有17位网友表示赞同!

SQL查询优化,MySQL in和exists的区别总结
雪花ミ飞舞

写SQL优化真的不容易啊!这种比较细致的知识点往往容易被忽略,还好看到了这篇总结文章,及时学习啦!

    有9位网友表示赞同!

SQL查询优化,MySQL in和exists的区别总结
不相忘

IN 子句有时候真的太慢了(特别是处理的大数据量),EXISTS 可以解决这个问题,但需要好好掌握它的用法。这篇文章就很有帮助!

    有7位网友表示赞同!

SQL查询优化,MySQL in和exists的区别总结
眼角有泪°

建议能加上一些实际案例和代码比较,这样更直观形象地展示 IN 和 EXISTS 的差异。

    有14位网友表示赞同!

SQL查询优化,MySQL in和exists的区别总结
纯真ブ已不复存在

SQL 优化确实太重要了,慢查询语句会严重影响用户的体验。学习这些基础知识才能写出更高效的 SQL 代码!

    有14位网友表示赞同!

SQL查询优化,MySQL in和exists的区别总结
青衫故人

这篇文章仅仅介绍了简单的区别,没有深入讲解复杂的场景分析,或者不同情况下选择哪个语句更为合理等等。

    有6位网友表示赞同!

原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/120568.html

Like (0)
小su的头像小su
Previous 2024年9月1日 下午1:15
Next 2024年9月1日 下午1:16

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注