返回顶部
首页 > 资讯 > 数据库 >mysql小表驱动大表
  • 869
分享到

mysql小表驱动大表

mysql数据库 2023-10-10 05:10:05 869人浏览 安东尼
摘要

摘要: 小表驱动大表是优化器从成本考虑后做出的选择 判断谁做小表时,是比较算上过滤条件后的字段+条数的总大小 小表驱动大表在执行计划中体现,第一行是小表第二行是大表。不是在show warning

摘要:
小表驱动大表是优化器从成本考虑后做出的选择
判断谁做小表时,是比较算上过滤条件后的字段+条数的总大小
小表驱动大表在执行计划中体现,第一行是小表第二行是大表。不是在show warnings体现
left join时右表过滤条件在where,优化器会转为inner join小表驱动大表。
left join时右表过滤条件在on,优化器不会优化成小表驱动大表,因为无法转为inner join,所以要自己把小表放左边,大表放右边
inner join时优化器会自动小表驱动大表

course–100条数据
student_info–100w条数据
优化器会选择小表驱动大表(这里表指的是算上过滤条件的表)

`EXPLaiNSELECT a.*,b.* FROM `course` a JOIN `student_info` b ON a.`course_id`=b.`course_id`

在这里插入图片描述

EXPLAIN SELECT a.* FROM `student_info` a JOIN `course` b ON a.`course_id`=b.`course_id`

在这里插入图片描述

加上过滤student_info的条件

EXPLAINSELECT a.*,b.* FROM `course` a JOIN `student_info` b ON a.`course_id`=b.`course_id` WHERE b.`student_id`=1

执行计划改变,由小表student_info驱动大表course,得出优化器先走where后join的结论。
在这里插入图片描述
查看优化器优化后的sql
show warnings

from atguigudb1.course a join atguigudb1.student_info b where ((atguigudb1.a.course_id = atguigudb1.b.course_id) and (atguigudb1.b.student_id = 1))

left join时右表过滤条件在where,优化器会转为inner join小表驱动大表。

EXPLAINSELECT a.*,b.* FROM `course` a LEFT JOIN `student_info` b ON a.`course_id`=b.`course_id` WHERE b.`student_id`=1

在这里插入图片描述查看优化器优化后的sql
show warnings

FROM atguigudb1.course a JOIN atguigudb1.student_info b WHERE ((atguigudb1.a.course_id = atguigudb1.b.course_id) AND (atguigudb1.b.student_id = 1))

来源地址:https://blog.csdn.net/qq_39331255/article/details/131192562

您可能感兴趣的文档:

--结束END--

本文标题: mysql小表驱动大表

本文链接: https://lsjlt.com/news/426646.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mysql小表驱动大表
    摘要: 小表驱动大表是优化器从成本考虑后做出的选择 判断谁做小表时,是比较算上过滤条件后的字段+条数的总大小 小表驱动大表在执行计划中体现,第一行是小表第二行是大表。不是在show warning...
    99+
    2023-10-10
    mysql 数据库
  • MySQL怎么查看表大小
    本篇内容主要讲解“MySQL怎么查看表大小”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL怎么查看表大小”吧! selec&...
    99+
    2024-04-02
  • 怎么查看mysql表大小
    要查看MySQL表的大小,可以使用以下几种方法: 使用MySQL命令行工具:在命令行中输入以下命令可以查看数据库中每个表的大小: ...
    99+
    2024-04-09
    mysql
  • 列出按大小排序的 MySQL 表和大小?
    您可以在 information_schema.tables 的帮助下完成此操作。语法如下 -SELECT TABLE_NAME, table_rows, data_length, index_length, round(((dat...
    99+
    2023-10-22
  • mysql怎么设置单表大小
    这篇文章给大家分享的是有关mysql怎么设置单表大小的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。mysql设置单表大小的方法:1、创建表时的修改方法;2、修改已存在表的方法,代...
    99+
    2024-04-02
  • mysql如何查询表的大小
    今天小编给大家分享一下mysql如何查询表的大小的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2024-04-02
  • MySQL库表名大小写的选择
    目录1.决定大小写是否敏感的参数2.参数变更注意事项总结:1.决定大小写是否敏感的参数 在 MySQL 中,数据库与 data 目录中的目录相对应。数据库中的每个表都对应于数据库目录中的至少一个文件(可能是多个文件,...
    99+
    2022-05-27
    MySQL 大小写的选择 MySQL 库表名大小写
  • mysql表名区分大小写问题
    mysql表名区分大小写问题 查看mysql数据库大小写敏感参数 1.1、 show variables like 'lower%';‘’ 参数说明 lower_case_table_names: 此参数不...
    99+
    2024-04-02
  • mysql中查看表大小的方法
    mysql中查看表大小的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!mysql 查看表的大小方法:1、查看所有数据库...
    99+
    2024-04-02
  • mySQL表单大小的示例分析
    这篇文章主要介绍了mySQL表单大小的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 这是说的是表单的大小而不是说表格中某项数据存...
    99+
    2024-04-02
  • mysql表名要区分大小写吗
    本篇内容主要讲解“mysql表名要区分大小写吗”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql表名要区分大小写吗”吧! my...
    99+
    2024-04-02
  • mysql怎么查看表碎片大小
    这篇文章主要为大家展示了“mysql怎么查看表碎片大小”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql怎么查看表碎片大小”这篇文章吧。查看表碎片大小(1)查看某个表的碎片大小mysql&...
    99+
    2023-06-01
  • mysql怎么查看表空间大小
    可以使用以下SQL语句来查看MySQL中各个表的空间大小: SELECT table_name AS `Table...
    99+
    2024-04-09
    mysql
  • mysql表空间大小怎么设置
    在MySQL中,表空间大小可以通过以下方式进行设置: 使用ALTER TABLE命令来调整表的存储引擎和表空间大小。例如,可以通过...
    99+
    2024-04-09
    mysql
  • MySQL 中一张大表和多个小表哪个更好?
    很难说是喜欢一张大桌子还是多张小桌子。这取决于 - 关于我们正在使用的应用程序。 关于数据库规范化 但是有很多关键点,通过这些点我们可以说多个小表是 在这种情况下很好。 假设很多开发者要开发多个表,那么就需要拆分 它们分成多个小表。 您向许...
    99+
    2023-10-22
  • 修改表结构迁移数据表来缩小表大小
    过程: 1、新建表,对新表的表结构进行修改。 2、把老表的数据通过sqlserver的数据流转化来导入新表中。 老表的表结构: 新表结构: 主要是把nvarchar改为了varchar 老表大小: ...
    99+
    2024-04-02
  • MySQL查看数据库表容量大小
    1.查看所有数据库容量大小 select table_schema as "数据库", sum(table_rows) as "记录数", sum(truncate(data_length/1024/1024, 2)) as ...
    99+
    2015-01-21
    MySQL查看数据库表容量大小
  • 实例讲解MySQL统计库表大小
    统计每个库每个表的大小是数据治理的其中最简单的一个要求,本文将从抽样统计结果及精确统计结果两方面来统计MySQL的每个库每个表的数据量情况。 1、统计预估数据量 mysql数据字典库information_schem...
    99+
    2022-05-30
    mysql 统计 MySQL 库表 MySQL 统计库表
  • MySQL单表的大小有哪些限制
    本篇内容介绍了“MySQL单表的大小有哪些限制”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  MySQL...
    99+
    2024-04-02
  • mysql 查看表大小的方法介绍
    本文主要介绍了mysql 查看表大小的方法实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着微点阅读小编来一起学习学习吧 查看所有数据库容量大小 1 2 3 4 5 6 7 8 se...
    99+
    2023-09-06
    mysql 数据库 sql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作