国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MYSQL IN 與 EXISTS 的優化示例介紹

2024-07-24 12:46:58
字體:
來源:轉載
供稿:網友

優化原則:小表驅動大表,即小的數據集驅動大的數據集。

############# 原理 (RBO) #####################

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

當B表的數據集必須小于A表的數據集時,用in優于exists。

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

當A表的數據集系小于B表的數據集時,用exists優于in。

注意:A表與B表的ID字段應建立索引。

例如:

/** 執行時間: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 exists 和in 詳解及區別mySQL中in查詢與exists查詢的區別小結mysql not in、left join、IS NULL、NOT EXISTS 效率問題記錄對比分析MySQL語句中的IN 和Exists
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 芷江| 威宁| 米林县| 博兴县| 英德市| 日照市| 无棣县| 桂平市| 辽阳市| 晋中市| 庆安县| 濮阳县| 仁化县| 安康市| 镇巴县| 日照市| 共和县| 盐津县| 郓城县| 曲松县| 正镶白旗| 乌审旗| 柘城县| 紫阳县| 鄂伦春自治旗| 灵宝市| 翁源县| 丹寨县| 大理市| 广西| 皮山县| 中江县| 广州市| 金门县| 龙泉市| 礼泉县| 库尔勒市| 南充市| 佛山市| 黄冈市| 马关县|