MySQL中的索引左连接右连接joinsql执行顺序

Posted 奔跑在路上的Snails

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL中的索引左连接右连接joinsql执行顺序相关的知识,希望对你有一定的参考价值。

逻辑架构:

  1、连接层

  2、服务层

  3、引擎层(插拔式)

  4、存储层

存储引擎:

  常用的有:MyISAM、InnoDB

  查看命令:show variables like \'%storage_engine%\';

索引:【单值、复合】

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

 删除索引:drop index  idx_user_name(索引名字)on user(表名) 

CREATE INDEX idx_article_ccv ON article(category_id,comments,views);

DROP INDEX idx_article_ccv ON article;

 

 

 

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

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

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

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

 

  分类:

    

    

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

 什么时候该建索引:

  如:where后面需要被查询的字段

什么时候不该建索引:

  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>

 

 

  二、7种join图

 

 

以上是关于MySQL中的索引左连接右连接joinsql执行顺序的主要内容,如果未能解决你的问题,请参考以下文章

mysql中的左连接和右连接有啥区别[重复]

mysql执行顺序及左连接和右连接

MySQL中的内连接左连接右连接全连接交叉连接

mysql左连接和右连接的区别

mysql 左连接,右连接

MySql连接——内连接外连接(左连接右连接全连接)