Code前端首页关于Code前端联系我们

mysql中的in和exists有什么区别?

terry 2年前 (2023-09-26) 阅读数 44 #数据库

mysql中in和exists的区别

mysql中的in语句是外表和内表之间的hash join,而exists语句是在外表上循环,每次都查询内表循环循环。大家始终相信exists的说法比声明中的更有效。这种说法其实是不准确的。这取决于环境。

  1. 如果查询的两个表大小差不​​多,使用in和exists没有太大区别。
  2. 如果两个表其中一个较小,另一个是较大的表,则较大的子查询表使用exists,较小的子查询表使用in。
  3. not in 和 not exists 如果查询命令使用 not in,则在内表和外表上都会搜索整个表,而不使用索引;而 not extsts 子查询仍然可以使用表上的索引。所以无论哪张桌子大,用no-constructor比nein更快。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门