MySQL数据库SQL语句优化原理专题(一)( 二 )
看到没 , in子查询被MySQL数据库的优化器改写成了半链接(semi join) , 所以执行计划里才会出现半连接特有的执行步骤(LooseScan) 。
为减少MySQL数据库的损耗 , 一般会将这种in子查询 , 在应用代码里用内连接方式实现 , 这样就避免MySQL数据库优化器改写sql语句这个步骤了 , 减少数据库资源损耗 。
mysql> explain select a.* from t_test1 a join t_test2 b where a.k=b.k and b.k>100;+----+-------------+-------+------------+-------+-------------------+------+---------+------------+------+----------+--------------------------+| id | select_type | table | partitions | type| possible_keys| key| key_len | ref| rows | filtered | Extra|+----+-------------+-------+------------+-------+-------------------+------+---------+------------+------+----------+--------------------------+|1 | SIMPLE| b| NULL| index | k_1,idx_sbtest1_k | k_1| 4| NULL|10 |100.00 | Using where; Using index ||1 | SIMPLE| a| NULL| ref| k_1,idx_sbtest1_k | k_1| 4| sbtest.b.k |1 |100.00 | NULL|+----+-------------+-------+------------+-------+-------------------+------+---------+------------+------+----------+--------------------------+2 rows in set, 1 warning (0.00 sec)夜深了 , 今天就写到这里 , MySQL数据库SQL语句优化原理专题后续再写 。
关注1.如果您喜欢这篇文章 , 请点赞+转发 。
2.如果您特别喜欢 , 请加关注 。
- pymysql 连接 MySQL 实现简单登录
- 巨杉亮相 DTCC2019,引领分布式数据库未来发展
- mysql 8.0.21 安装配置方法图文教程
- SpringBoot+MyBatis+MySQL读写分离实现
- Mysql不止CRUD,聊聊索引
- 详解mysql执行计划
- 什么是MySQL的执行计划(Explain关键字)?
- 数据库管理越来越复杂,有没有更简洁统一的解决方案?
- SQL竞争对手简史
- 中国数据库江湖风云录:阿里云从无到有“建高楼”
