mysql中left join 不一定比 in效率高案例

一 案例

1.1 说明

常规来说,left join语法 要比 写 in 效率高,查询快,但是万事有特殊情况,如下sql:

DESC

SELECT a.business_depart,b.user_id,c.name FROM bocai_ip_list AS a ,bocai_department_admin AS b, bocai_ip_list AS c WHERE

b.department_abbr=a.business_depart AND a.id='1057279' AND c.id=b.user_id

DESC

SELECT id,NAME FROM bocai_ip_list WHERE id IN (

SELECT b.user_id FROM bocai_ip_list AS a ,bocai_department_admin AS b WHERE

b.department_abbr=a.business_depart AND a.id='1057279'

)

using where;using index 为何第一个执行是这个,而第二个是using where;using index;LooseScan第二个比第一个高效呢?

1.2 分析说明

第二条用 IN 子查询触发了**MySQL 的 LooseScan 索引跳跃优化,这条 SQL 因为结果集小 + 索引完美,IN 触发了 LooseScan(索引跳跃扫描),**反而比多表 JOIN 更快。比第一条三表 JOIN 的全量匹配更快,所以更高效。

相关推荐
一只小bit27 分钟前
Redis哨兵机制、主从复制与集群搭建与维护
数据库·redis·bootstrap
zlwool7 小时前
图纸管理选型避坑指南
数据库·erp·设备erp·非标机械
小灰灰搞电子8 小时前
完全驾驭 Qt 与数据库:C++ ORM 框架 QxOrm 原理与实践指南
数据库·c++·qt
软件聚导航10 小时前
「聚小软 AI 助手」技术升级:从数据库检索到 RAG 知识库问答
前端·数据库·mysql·微信小程序·小程序·ai编程·rag
2601_9609067210 小时前
1X发布自己的世界模型1XWM
mysql·mongodb·rabbitmq·memcached
学习星球10 小时前
单调栈——从“找下一个更大的“到柱状图中的最大矩形
数据库·c++·算法·leetcode·xcode
GoppViper11 小时前
RDF资源描述框架深度解析:语义Web的数据基石与实战逻辑
前端·数据库
2601_9621741711 小时前
Redis 简介
数据库·redis·wpf
夜雪一千12 小时前
MySQL 各种数据同步方案全梳理:从简单复制到异构同步实战
数据库·mysql
ruleslol12 小时前
MySQL: OR查询为什么会导致索引失效
mysql