加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql学习MYSQL IN 与 EXISTS 的优化示例介绍

发布时间:2020-12-12 03:01:00 所属栏目:MySql教程 来源:网络整理
导读:《Mysql学习MYSQL IN 与 EXISTS 的优化示例介绍》要点: 本文介绍了Mysql学习MYSQL IN 与 EXISTS 的优化示例介绍,希望对您有用。如果有疑问,可以联系我们。 优化原则:小表驱动年夜表,即小的数据集驱动年夜的数据集. MYSQL入门 ############# 原理 (RBO) #

《Mysql学习MYSQL IN 与 EXISTS 的优化示例介绍》要点:
本文介绍了Mysql学习MYSQL IN 与 EXISTS 的优化示例介绍,希望对您有用。如果有疑问,可以联系我们。

优化原则:小表驱动年夜表,即小的数据集驱动年夜的数据集.MYSQL入门

############# 原理 (RBO) #####################
MYSQL入门

select * from A where id in (select id from B)
等价于:
for select id from B
for select * from A where A.id = B.id

当B表的数据集必需小于A表的数据集时,用in优于exists.MYSQL入门

select * from A where exists (select 1 from B where B.id = A.id)
等价于
for select * from A
for select * from B where B.id = A.id

当A表的数据集系小于B表的数据集时,用exists优于in.MYSQL入门

注意:A表与B表的ID字段应建立索引.MYSQL入门

例如:MYSQL入门

/** 执行光阴:0.313s **/
SELECT SQL_NO_CACHE * FROM rocky_member m WHERE EXISTS (SELECT 1 FROM rocky_vip_appro a WHERE m.ID = a.user_id AND a.passed = 1);
/** 执行光阴:0.160s **/
SELECT SQL_NO_CACHE * FROM rocky_member m WHERE m.ID in(SELECT ID FROM rocky_vip_appro WHERE passed = 1);

not in 和not exists用法类似.MYSQL入门

《Mysql学习MYSQL IN 与 EXISTS 的优化示例介绍》是否对您有启发,欢迎查看更多与《Mysql学习MYSQL IN 与 EXISTS 的优化示例介绍》相关教程,学精学透。编程之家PHP学院为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读