MySQL中的索引、左连接、右连接、join、sql执行顺序

MySQL中的索引、左连接、右连接、join、sql执行顺序逻辑架构: 1、连接层 2、服务层 3、引擎层(插拔式) 4、存储层 存储引擎: 常用的有:MyISAM、InnoDB 查看命令:show variables like '%storage_e

MySQL中的索引、左连接、右连接、join、sql执行顺序

逻辑架构:

  1、连接层

  2、服务层

  3、引擎层(插拔式)

  4、存储层

存储引擎:

  常用的有:MyISAM、InnoDB

  查看命令:show variables like “%storage_engine%”;

索引:【单值、复合】

 创建索引:create index idx_user_name(索引名字) on user(表名) (name)(字段名)

  定义:索引是一种数据结构(帮助MySQL高效的获取数据)

  目的:提高查询效率,可以类比字典【可以理解为排好序的快速查找数据结构】

     但同时也会影响sql两部分:where后面的查找、order by 后面的排序

 优势:提高数据检索效率,降低数据库的iO成本;

 劣势:实际上索引也是一种表,它保存的索引字段,是需要占空间的;会降低更新表速度,因为更新表时,MySQL不仅要保存数据还要保存索引文件每次更新添加了索引的字段

 

  分类:

    MySQL中的索引、左连接、右连接、join、sql执行顺序

    MySQL中的索引、左连接、右连接、join、sql执行顺序

 原理:二分查找,类似猜数字游戏【结构:B-TREE(Java主要)、hash、R-TREE】

 什么时候该建索引:

MySQL中的索引、左连接、右连接、join、sql执行顺序

什么时候不该建索引:

  1、表记录太少

  2、经常增删改的表或字段

  3、数据重复切分布平均的字段【如果某个数据列包含许多重复的内容,为它建立索引就没有很么实际的效果】

常见的join查询:

  一、SQL执行顺序

    1 FROM <left_table>

    2 ON <join_condition>

    3 <join_type>JOIN<right_table>

    4 WHERE <where_condition>

    5 GROUP BY <group_by_list>

    6 HAVING <having_condition>

    7 SELECT

    8 DISTINCT<select_list>

    9 ORDER BY <order_by_condition>

    10 LIMIT <limit_number>

MySQL中的索引、左连接、右连接、join、sql执行顺序

 

 

  二、7种join图

 

MySQL中的索引、左连接、右连接、join、sql执行顺序

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/9806.html

(0)
上一篇 2023-01-31
下一篇 2023-01-31

相关推荐

  • 用 Python 表示根号

    用 Python 表示根号作为一种常用的运算符,求平方根在数学和计算科学领域经常被使用。而在编程语言 Python 中,表示平方根同样既简单又灵活。在本文中,我们将具体介绍如何用 Python 表示根号。

    2024-05-14
    60
  • MySQL第三天[亲测有效]

    MySQL第三天[亲测有效]2022-09-05 MySQL常用的命令语句 表的操作语句 1、查询某个表的内容 select * from xxx(表名); 2、向某个表内添加数据 以“students”表为例: student

    2023-06-03
    136
  • @InsertProvider 或者 @SelectProvider 同 text.xml 配置文件使用优劣[通俗易懂]

    @InsertProvider 或者 @SelectProvider 同 text.xml 配置文件使用优劣[通俗易懂]1.有时候我们根据参数输入条件决定插入什么数据, 用text.xml 当减少实体类的某些属性,你需要到text.xml 一个一个的删掉多余的属性,但是通过InsertProvider 写的因为和类直…

    2023-03-10
    146
  • 查询代码在哪个视图、存储过程、函数、触发中使用过「建议收藏」

    查询代码在哪个视图、存储过程、函数、触发中使用过「建议收藏」工作中偶尔会出现:想用A数据表替换B数据表,然后把B数据表删除。但是,又不知道B数据表在哪个视图、存储过程、函数、触发器中使用过? 经过一番度娘,看到实现方法也不难,主要涉及两个系统表:sysobje

    2022-12-16
    133
  • Python工程师:Keras安装指南

    Python工程师:Keras安装指南Keras 是一个高级神经网络 API,采用 Python 编写,可基于 TensorFlow、CNTK 或 Theano 作为后端运行。它提供可重用且易于理解的代码,让用户能够使用最少的时间将想法转化为结果。 本篇文章将重点介绍 Keras 安装指南。

    2024-08-04
    34
  • 使用Python中的 Break 关键字在 For 循环中提前退出

    使用Python中的 Break 关键字在 For 循环中提前退出在Python中,break关键字常用于循环语句中的执行结构。使用break对于遇到指定情况的代码块将会提前退出循环,从而节省计算并优化程序执行速度。

    2024-01-08
    113
  • 分布式时序数据库_时序数据库公司

    分布式时序数据库_时序数据库公司随着物联网的发展,时序数据库的需求越来越多,比如水文监控、工厂的设备监控、国家安全相关的数据监控、通讯监控、金融行业指标数据、传感器数据等。
    在互联网行业中,也有着非常多的时序数据,例如用户访问网站的

    2023-04-27
    157
  • 使用PyCharm进行Debug

    使用PyCharm进行DebugPyCharm是一款强大的Python IDE,具有可扩展性和可定制性,包含调试器,支持多种工具和框架。它是专业Python开发人员的选择,可以集成到各种Python开发环境中。使用PyCharm进行Debug是Python开发中的重要环节。

    2024-08-28
    27

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注