在了解之前要先了解对应语法 in 与 exist。

in后的括号的表达式结果要求之输出一列字段。与之前的搜索字段匹配,匹配到相同则返回对应行。

mysql的执行顺序是先执行子查询,然后执行主查询,用子查询的结果按条匹配主查询。

exist后的括号里则无输出要求,exist判断后面的结果集中有没有行,有行则返回外层查询对应的行。

ps所以exist还可以这样写: 用常量替换* ,反正是判断有没有行,不需要实际传回的数据。

select * from A where exist(select 1 from B where B.id= A.id)

mysql的执行顺序是先执行主查询,将主查询的数据放在子查询中做条件验证。

大体看来貌似exist的执行效率比in低,但其实exists子查询在底层做了优化,会忽略select清单,也并不会对每条数据进行对比。

比如这里有两张表

在查询中最好使用小表驱动大表,因为在外层表循环内层的时候,会锁定外层表,如果大表在外,会锁定5k次 。

如果要求查询所有id相同的Aname 有两种查询方式

1.由B表驱动A表 会先执行子查询 大表驱动小表

2.由A表驱动B表 会先执行主查询 小表驱动大表

如果需求变为 查询所有id相同的Bname

1.小表驱动大表

2.大表驱动小表

这表明查询效果一样,可以从sql语句逻辑层面进行适当修改,从而提高查询效率。

参考网址:

Mysql 多表关联链接顺序说明

mysql8.0是可以改变执行顺序的,然后是否可以提高查询效率,也不清楚,一般用的少,了解下就可以了。

mysql 大表 驱动_MySql 小表驱动大表相关推荐

  1. Atiti.大企业病与小企业病 大公司病与小公司病

    Atiti.大企业病与小企业病 大公司病与小公司病 1. 大企业病,一般会符合机构臃肿 .多重领导 .人才流失的特点.1 2. 大企业病避免方法1 3. 小企业病 1 3.1.1. 表现1 4. 如何 ...

  2. golang 拷贝大切片一定比小切片代价大吗

    文章目录 问题描述 解答 李培冠博客 问题描述 拷贝大切片一定比小切片代价大吗? 解答 并不是,拷贝所有切片的代价都是一样的. 看一下源码,就很清楚了: type slice struct {arra ...

  3. mysql查询数据库结构_mysql查询数据库下的表结构

    mysql查询数据库下的表结构 方法:1.使用DESCRIBE命令以表格的形式展示表结构,语法"DESCRIBE 表名;":2.使用"SHOW CREATE TABLE& ...

  4. mysql 横向分表合并_MySQL横向扩展-分库分表解决方案总结

    从业务场景看分库分表 互联网行业中,业务场景通常写少读多的情况居多,在MySQL的使用前期,读性能大多可以通过SQL优化来解决,但随着业务的持续发展,单纯依靠SQL的查询优化会越来越难以达到业务服务要 ...

  5. mysql cluster 查看数据库表名称_MySQL Cluster如何创建磁盘表方法解读

    MySQL Cluster采用一系列的Disk Data objects来实现磁盘表;接下来为您详细介绍 一.概念 MySQL Cluster采用一系列的Disk Data objects来实现磁盘表 ...

  6. mysql为什么要分库_mysql为什么要分库分表?

    1 基本思想之什么是分库分表? 从字面上简单理解,就是把原本存储于一个库的数据分块存储到多个库上,把原本存储于一个表的数据分块存储到多个表上. 2 基本思想之为什么要分库分表? 单表操作数据量有最优值 ...

  7. MYSQL数据库字段关联_MySQL数据库 字段操作 多表关系(更新中...)

    外键 (foreign key) ## 外键 ```mysql # 作者(author):id,name,sex,age,mobile, detail_id # 作者详情(author_detail) ...

  8. mysql 对已有表分区_mysql怎么对先有表进行分区

    mysql如何对先有表进行分区? 有一张表,已经创建了,是一张普通的表,先要对这张表进行hash分区,我用一下语句创建提示错误: mysql> alter table 33 -> part ...

  9. mysql 表丢失_Mysql数据库备份 部分数据表丢失 Mysql table doesn't exist 解决

    问题: 直接拷贝data下的数据库数据进行备份,重装升级了数据库,直接复制备份数据到新的数据库data目录下,发现部分数据表不见了. 原因分析: 以表"Table"为例: 如类型是 ...

最新文章

  1. c++容器vector
  2. 一份微服务架构手稿图,彻底搞定微服务核心原理!
  3. 今天俺要说一说工厂方法模式(Factory)
  4. 《零基础看得懂的C语言入门教程 》——(二)C语言没那么难简单开发带你了解流程
  5. 电机与拖动,直流发电机实验,江南大学物联网自动化
  6. 5、jeecg 笔记之 minidao 条件判断
  7. 狗狗1岁相当于人类31岁!基于基因组甲基化图谱建立首个跨物种年龄转换公式...
  8. mysql -b -e_为什么 MongoDB 索引选择B-树,而 Mysql 索引选择B+树(精干总结)
  9. VS-watch窗口
  10. DYNAMIC_DOWNCAST STATIC_DOWNCAST IsKindOf
  11. linux ntfs 转换 无损,无损数据下NTFS转换FAT32分区
  12. 实战Detectron2— 训练人体关键点检测
  13. 2021朝阳启声学校高考成绩查询,梦在前方 路在脚下 ———潮阳启声学校2019届高考80天誓师大会...
  14. EasyReport报表工具
  15. android权限的最佳运用
  16. 台式计算机没有声音图标,win7电脑没有声音扬声器图标不见了怎么办?
  17. JAVA 并发编程学习总结
  18. java学习总结(16.05.25)eclipse的查找和替换功能 Ctrl+F
  19. 息县装修“茶几的选择”
  20. python樱花开放教程_Python画樱花树 !

热门文章

  1. 集合及其常见操作,创建,增加,删除,查找
  2. 蓝桥杯 基础练习 查找整数
  3. 集成学习 Ensemble Learing(???)
  4. 时隔25年重访 Linus:流量时代的“技术大师”
  5. Nginx Unit 1.8.0 发布,动态 Web 应用服务器
  6. Easy-RSA 3快速入门自述文件
  7. Python2读取Excel文件时候文件名称是中文的时候处理
  8. python实现播放音乐_python实现简易云音乐播放器
  9. java题1_java面试题1
  10. java解三角函数方程_Java 中的三角函数