Mysql索引及优化

Posted Panda_Java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql索引及优化相关的知识,希望对你有一定的参考价值。

mysql及优化

1.整体语句顺序

2. 分页查询

2.1 语法

2.2 举例1

2.3 举例 2

3.分组查询

3.1 where 与 having区别

3.2 案例

4. 单表综合练习sql


5. 多表综合练习sql

5.1 内连接

查询两张表交集的部分

5.2 外连接

才会包含左边或者右表所有信息

5.3 自连接

5.4 子查询

6. 索引

6.1 为什么InnoDB存储引擎使用B+Tree索引结构

1.采用二叉树 按照有序的插入----》 形成链表 (搜索性能很低)
2. 红黑树—(本质也是二叉树,红黑树是一种平衡二叉查找树的变体,它的左右子树高差有可能大于 1,所以红黑树不是严格意义上的平衡二叉树(AVL)),B+相对于二叉树,层级更少,搜索效率更高。
3. b树—》叶子结点和非叶子结点 都存数据。
4. 相对于Hash索引,B+树支持范围匹配, 而hash索引只支持等值匹配

6.2 索引分类

主键索引:
唯一索引: 当把这个字段加上关键字Unique,就会为这个字段加上唯一索引(可以有多个)

InnoDb中聚集索引与非聚集索引
涉及回表查询

6.3 索引语法

6.4 索引-查看执行频次

查看当前数据库–增删改查的执行语句
show global status like ‘com_____7个’ 一个下划线代表一个字符

6.5 索引-性能分析

慢查询日志:定位哪些sql中select语句查询慢=== 针对性优化

6.6 profile 详情

show profiles

6.7 explain执行计划

  1. id

    2 type 表示连接类型

6.8 索引使用(失效多种情况)

  1. 满足:最左前缀法则---- 针对组合索引(如果最左边的索引不存在,则索引会失效)
    如果跳跃了一列,则索引也会部分失效。
  2. 范围查询
  3. 索引列运算
    不要在索引列上进行运算操作,索引将失效。
  4. 字符串 要加单引号
  5. 模糊查询: 如果仅仅是尾部模糊匹配,索引不会失效。如果是头部模糊匹配,索引失效。
  6. or 连接的条件
  7. 数据分布影响

6.9 索引设计原则

7. Mysql 优化

链接: B站最好的MySQL性能优化面试回答,三分钟搞定面试官!.

以上是关于Mysql索引及优化的主要内容,如果未能解决你的问题,请参考以下文章

MySQL优化-索引

MySQL优化系列2-索引原理和优化

MySQL索引原理及SQL优化

mysql索引使用策略及优化

mysql索引及优化学习

MySQL索引及Explain及常见优化