首页 >

MySQL不支持子查询优化一例

数据库|mysql教程MySQL不支持子查询优化一例
MySQL查询优化,MySQL不支持子查询优化一例,数据库,
数据库-mysql教程
3d皮肤源码下载,ubuntu返回主命令,tomcat下文件夹下,大连爬虫部落,php数字补零,壁山正规seo优化一站式服务商lzw
一创建表 create table tt1(id int primary key, c1 INT);create table tt2(id int primary key, c2 INT);insert into tt1 value
vb 源码 拖放文件,vscode怎么打包发布程序,ubuntu版本qq,检验tomcat,flask操作sqlite,手机移动端网页设计,香港服务器免备案主机,后台关闭插件,前端框架 收集,白森爬虫,如何学习php,seo经理简历,springboot异步登录,wap网站生成微信小程序,网页特效日历,h5手机表单模板,网站后台语言,手机端页面在线制作,信息发布管理系统,delta 复制期权 matlab程序lzw
大型电子商城源码,vscode取消变量提示,ubuntu ocr使用,tomcat 推流,sqlite的中文编码格式,爬虫基本功能介绍图,php获取文件的后缀名,网店推广SEO总结,网站首页动画代码,pc28网页版源,dreamweaver 8模板lzw

一创建表

create table tt1(id int primary key, c1 INT);
create table tt2(id int primary key, c2 INT);
insert into tt1 values(1,1),(2,2),(3,3),(4,4);
insert into tt2 values(1,2),(2,2);

二 执行计划与问题

mysql> explain EXTENDED SELECT tt1.c1, (SELECT tt2.c2 FROM tt2 WHERE c2=10) FROM tt1, tt2;
+—-+————-+——-+——-+—————+———+———+——+——+———-+—————————————+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+—-+————-+——-+——-+—————+———+———+——+——+———-+—————————————+
| 1 | PRIMARY | tt2 | index | NULL | PRIMARY | 4 | NULL | 2 | 100.00 | Using index |
| 1 | PRIMARY | tt1 | ALL | NULL | NULL | NULL | NULL | 4 | 100.00 | Using join buffer (Block Nested Loop) |
| 2 | SUBQUERY | tt2 | ALL | NULL | NULL | NULL | NULL | 2 | 100.00 | Using where |
+—-+————-+——-+——-+—————+———+———+——+——+———-+—————————————+
3 rows in set, 1 warning (0.00 sec)
这个语句的执行顺序是怎么执行的,就是按照执行计划这样从上到下执行吗?

三 分析

—id值为1的两个,,是From子句中的tt1和tt2,用块嵌套循环连接算法做内连接,tt2是外表,所以先启动的是tt2;后启动的是tt1。
—id值为2的是目标列中的子查询,后于FROM子句中的表执行。发生在连接后要求目标列的值发给客户端阶段。
—理论上是可以优化的,方法为:目标列只有一列和WHERE条件相同,所以,可以推知此子查询的结果是2。
—但是,MySQL没有优化这样的子查询。
—另外,对于这里的子查询,如果其结果返回多行,则MySQL会报告错误:ERROR 1242 (21000): Subquery returns more than 1 row。

————————————–分割线 ————————————–

Ubuntu 14.04下安装MySQL

《MySQL权威指南(原书第2版)》清晰中文扫描版 PDF

Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL

Ubuntu 14.04下搭建MySQL主从服务器

Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群

Ubuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb

MySQL-5.5.38通用二进制安装

————————————–分割线 ————————————–

本文永久更新链接地址:


MySQL不支持子查询优化一例
  • Mysql查询语句优化技巧【MySQL】
  • Mysql查询语句优化技巧【MySQL】 | Mysql查询语句优化技巧【MySQL】 ...

    MySQL不支持子查询优化一例
  • MySQL 索引及查询优化
  • MySQL 索引及查询优化 | MySQL 索引及查询优化 ...

    MySQL不支持子查询优化一例
  • MySQL查询优化:profile功能
  • MySQL查询优化:profile功能 | MySQL查询优化:profile功能 ...