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


    逻辑架构:

      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图

  • 相关阅读:
    gulp之压缩合并MD5清空替换加前缀以及自动编译自动刷新浏览器大全
    HTML5之文件API
    Angular2之路由学习笔记
    nodejs之主机不能访问到虚拟机的web服务器
    学习CSS3动画(animation)
    jQuery之ajax错误调试分析
    Angular2之管道学习笔记
    css3之3D魔方动画(小白版)
    关于二维网格导入autodyn的问题
    两个橡胶球自由落体撞击弹性板
  • 原文地址:https://www.cnblogs.com/exce-ben/p/12370202.html
Copyright © 2020-2023  润新知