mysql中的in和exists有什么区别?
mysql中in和exists的区别
mysql中的in语句是外表和内表之间的hash join,而exists语句是在外表上循环,每次都查询内表循环循环。大家始终相信exists的说法比声明中的更有效。这种说法其实是不准确的。这取决于环境。
- 如果查询的两个表大小差不多,使用in和exists没有太大区别。
- 如果两个表其中一个较小,另一个是较大的表,则较大的子查询表使用exists,较小的子查询表使用in。
- not in 和 not exists 如果查询命令使用 not in,则在内表和外表上都会搜索整个表,而不使用索引;而 not extsts 子查询仍然可以使用表上的索引。所以无论哪张桌子大,用no-constructor比nein更快。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。