• Mysql优化---B树与索引


    3.SQL优化

    原因:性能低、执行时间太长、等待时间太长、SQL语句欠佳(连接查询)、索引失效、服务器参数设置不一致。

    a.SQL:

    编写过程:select dinstinct .. from .. join.. on.. where ..group by .. having .. order by ..limit
    
    解析过程:
    
                  from..on..  join.. where.. 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    b.SQL优化,主要就是 在优化索引

       索引: 相当于书的目录
    
       索引:index是帮助MYSQL高效  获取数据的数据结构。索引是数据结构(树:B树(默认)、Hash树...)
    
        索引的弊端:
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 索引本身很大,可以存放在内存/硬盘(通常为硬盘)
    2. 索引不是所有情况均适用:a. 数据量少 b. 频繁更新的字段 c.很少使用的字段
    3. 会降低增删改的效率(增删改 查)
      优势:
      1.提高查询效率(降低IO使用率)
      2.降低CPU使用率(…order by age desc. 因为 B树索引 本身就是一个 好的排序的结构,因此在排序时可以直接使用)
    4. 索引
      分类:
      • 主键索引:不能重复,id, 不能为NULL。
      • 单值索引:单列,age:一个表可以多个单值索引,name。
      • 唯一索引:不能重复,id。
      • 复合索引:多个列构成的索引(相当于二级目录:z: zhao)。
    5. 创建索引:
      方式一:
      create 索引类型 索引名 on 表(字段)
      单值:create index dept_index on tb(dept);
      唯一:create unique index name_index on tb(name);
      复合索引:create index cept_name_index on tb(dept, name);
      方式二:
      单值:
      alter table tb add index dept_index(dept);
      唯一:
      alter table tb add unique index name_index(name);
      复合索引
      alter table tb add index dept_name_index(dept, name);
      删除索引:
      drop index 索引名 on 表名;
      drop index name_index on tb;
      查询索引:
      show index from 表名;
      show index from 表名 \G

    5.SQL性能问题

    a. 分析SQL的执行计划:explain , 可以模拟SQL优化执行SQL语句,从而让开发人员知道自己编写的效果

    b. Mysql查询优化其会干扰我们的优化

  • 相关阅读:
    【浅学Java】深入理解TCP的10种机制
    C# OpenCvSharp 利用Lab空间把春天的场景改为秋天
    NLP模型(三)——FastText介绍
    2.3_12管程
    小程序中的分页查询
    5.Vue中的计算属性(compute)监视属性(watch),二者优点和对比
    ArcObjects SDK开发 010 FeatureLayer
    计算机网络-数据链路层(无线局域网(802.11局域网,MAC帧头格式,无线局域网的分类,VLAN基本概念与基本原理))
    python安全脚本开发简单思路
    day22集合01
  • 原文地址:https://blog.csdn.net/qq_52001969/article/details/125450428