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

首頁 > 數據庫 > MySQL > 正文

MYSQL IN 與 EXISTS 的優化示例介紹

2020-01-18 23:09:08
字體:
來源:轉載
供稿:網友

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

############# 原理 (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用法類似。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 马尔康县| 新化县| 怀化市| 金秀| 岱山县| 鄂托克前旗| 光山县| 钟祥市| 西昌市| 十堰市| 安泽县| 平乡县| 景东| 南投县| 克什克腾旗| 龙州县| 浙江省| 曲周县| 武山县| 平阴县| 灵丘县| 灵武市| 甘谷县| 葫芦岛市| 林甸县| 景东| 石家庄市| 塘沽区| 上虞市| 闻喜县| 大悟县| 淄博市| 镇平县| 灌阳县| 肇源县| 台中市| 宁安市| 磴口县| 富民县| 舟曲县| 乌鲁木齐县|