通过IN换INNER JOIN实现对mysql的优化
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,不知道大家之前对类似通过IN换INNER JOIN实现对mysql的优化的文章有无了解,今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完通过IN换INNER JOIN实现对m
千家信息网最后更新 2026年11月02日通过IN换INNER JOIN实现对mysql的优化
不知道大家之前对类似通过IN换INNER JOIN实现对mysql的优化的文章有无了解,今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完通过IN换INNER JOIN实现对mysql的优化你一定会有所收获的。
SQL问题:
要将A表查询的ID,匹配B表的ID,并将B表全部内容查询出来:
未优化前:
MySQL [xxuer]> SELECT -> COUNT(*) -> FROM -> t_cmdb_app_version -> WHERE -> id IN (SELECT -> pid -> FROM -> t_cmdb_app_relation UNION SELECT -> rp_id -> FROM -> t_cmdb_app_relation);+----------+| COUNT(*) |+----------+| 266 |+----------+1 row in set (0.21 sec)
优化后:
MySQL [xxuer]> SELECT -> count(*) -> FROM -> t_cmdb_app_version a -> INNER JOIN -> (SELECT -> pid -> FROM -> t_cmdb_app_relation UNION SELECT -> rp_id -> FROM -> t_cmdb_app_relation) b ON a.id = b.pid;+----------+| count(*) |+----------+| 266 |+----------+1 row in set (0.00 sec)
查看执行计划对比:
MySQL [xxuer]> explain SELECT -> COUNT(*) -> FROM -> t_cmdb_app_version -> WHERE -> id IN (SELECT -> pid -> FROM -> t_cmdb_app_relation UNION SELECT -> rp_id -> FROM -> t_cmdb_app_relation);+----+--------------------+---------------------+-------+---------------+---------+---------+------+------+--------------------------+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |+----+--------------------+---------------------+-------+---------------+---------+---------+------+------+--------------------------+| 1 | PRIMARY | t_cmdb_app_version | index | NULL | PRIMARY | 4 | NULL | 659 | Using where; Using index || 2 | DEPENDENT SUBQUERY | t_cmdb_app_relation | ALL | NULL | NULL | NULL | NULL | 383 | Using where || 3 | DEPENDENT UNION | t_cmdb_app_relation | ALL | NULL | NULL | NULL | NULL | 383 | Using where || NULL | UNION RESULT || ALL | NULL | NULL | NULL | NULL | NULL | Using temporary |+----+--------------------+---------------------+-------+---------------+---------+---------+------+------+--------------------------+4 rows in set (0.00 sec)
MySQL [xxuer]> explain SELECT -> count(*) -> FROM -> t_cmdb_app_version a -> INNER JOIN -> (SELECT -> pid -> FROM -> t_cmdb_app_relation UNION SELECT -> rp_id -> FROM -> t_cmdb_app_relation) b ON a.id = b.pid;+----+--------------+---------------------+--------+---------------+---------+---------+-------+------+--------------------------+| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |+----+--------------+---------------------+--------+---------------+---------+---------+-------+------+--------------------------+| 1 | PRIMARY || ALL | NULL | NULL | NULL | NULL | 766 | Using where || 1 | PRIMARY | a | eq_ref | PRIMARY | PRIMARY | 4 | b.pid | 1 | Using where; Using index || 2 | DERIVED | t_cmdb_app_relation | ALL | NULL | NULL | NULL | NULL | 383 | NULL || 3 | UNION | t_cmdb_app_relation | ALL | NULL | NULL | NULL | NULL | 383 | NULL || NULL | UNION RESULT | | ALL | NULL | NULL | NULL | NULL | NULL | Using temporary |+----+--------------+---------------------+--------+---------------+---------+---------+-------+------+--------------------------+5 rows in set (0.00 sec)
看完通过IN换INNER JOIN实现对mysql的优化这篇文章,大家觉得怎么样?如果想要了解更多相关,可以继续关注我们的行业资讯板块。
查询
兴趣
内容
文章
更多
板块
正文
篇文章
行业
资讯
部分
问题
并将
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡网
科技赋能下的互联网金融
互联网科技卖菜
艾特科技互联网
深圳天众互联网科技公司
互联网科技咨询
蓝色互联网科技
互联网科技教育视频
互联网科技项目计划书材料类
恒生互联网科技指数跳水
华夏恒生科技与互联网科技
南博望互联网科技有限公司
恒生互联网科技业指数调整周期
富国互联网金融科技混合基金
上海创道互联网络科技有限公司
广州三三互联网科技有限公司
深圳互联网科技园地址
恒生科技指数 中概互联网
数字科技和互联网金融哪个好
前海云享互联网科技
咖啡
互联网与科技
互联网最新的科技
顺玮阁互联网科技
湖南洣水互联网科技有限公司扣款
昭通互联网科技选哪家
互联网在线教育科技创业
四川互联网展示科技馆设计
扫呗互联网科技有限公司
上海万顺科技互联网有限公司招聘