国产探花免费观看_亚洲丰满少妇自慰呻吟_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
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 梓潼县| 岳池县| 淮阳县| 台南市| 定西市| 邯郸市| 神木县| 南京市| 柳河县| 黔西| 西畴县| 长白| 吉隆县| 成武县| 二连浩特市| 道孚县| 临沭县| 平乡县| 永靖县| 淮北市| 红桥区| 马鞍山市| 尚志市| 南岸区| 丰镇市| 涞源县| 宁河县| 会宁县| 霍林郭勒市| 敖汉旗| 广元市| 扎囊县| 南丹县| 田东县| 澄迈县| 大洼县| 新津县| 柏乡县| 平凉市| 平凉市| 潼南县|