通过IN换INNER JOIN实现对mysql的优化
发表于:2024-10-09 作者:千家信息网编辑
千家信息网最后更新 2024年10月09日,不知道大家之前对类似通过IN换INNER JOIN实现对mysql的优化的文章有无了解,今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完通过IN换INNER JOIN实现对m
千家信息网最后更新 2024年10月09日通过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安全错误
数据库的锁怎样保障安全
电脑网络安全模式下能使用吗
浅谈网络安全与信息保密
服务器和电脑是一样的吗
服务器硬盘托架功能
刷水软件开发
彩虹3数据库
深圳市盖亚拓普网络技术有限公司
互联网科技产业细分
树莓派 当服务器
昆冶计算机网络技术专业
北京蓝牙科技互联网公司
互联网科技公司创始人
福建中消网络技术有限公司
网络安全态势评估算法
网络安全信息化学习资料
网络安全对xiao学生
磁盘阵列柜 服务器连接
优品租怎么显示服务器忙
数据库 左连接 内连接
如何建立一个武器数据库
进口实时数据库模型生产
上海本地软件开发服务价格
国内平台服务器
借书管理数据库
泸州网络安全
centos代理服务器有哪些
网络技术学徒待遇
普陀区创新软件开发内容
淘宝需要的数据库表
工业服务器技术参数