码迷,mamicode.com
首页 > 数据库 > 详细

mySql索引

时间:2021-01-05 11:25:40      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:系统   style   原则   唯一索引   explain   地址   mysql8   索引   倒排索引   

技术图片

 局部性原理

 时间局部性和空间局部性

 磁盘预读(预读的长度一般为页(page)的整数倍)

  • 页是存储器的逻辑块,操作系统往往将主存和磁盘存储区分割为连续的大小相等的块
  • 每个存储块称为一页(在血多操作系统中,页大小通常为4k)
  • 主存和磁盘以页为单位交换数据

索引

技术图片

 

技术图片

技术图片

 

 

 扰动函数

 技术图片

 

 

 红黑树不是严格的平衡树,是对AVL树的升级

技术图片

 

 

 技术图片

 

 

 B树

技术图片  技术图片

技术图片

 

 

  B+树

技术图片

 

 

 技术图片

技术图片

 

 

  InnoDB--B+Tree,叶子结点直接放置数据

  回表

技术图片

 

 mysql MyISAM -- B+Tree

 

技术图片

聚簇索引,索引文件和数据文件放在一起

非聚簇索引,索引文件和数据文件分开放

  • InnoDB使用聚集索引,数据根据主索引存储在叶子节点上,辅助索引的data域存储主键
  • myisam使用非聚集索引,即主索引(B+树)的叶子节点存储数据的地址,myisam可以没有主键,数据也不是存储在B+主索引的叶子节点上的

 回表

技术图片

 

 

 索引分类

技术图片

 

 

  • 唯一索引,不需要回表操作
  • 普通索引,回表的时候可以通过覆盖索引优化

 覆盖索引,选择id的时候,先查nameB+树,这棵树带着id,所以不需要回表

技术图片

 

 

 全文索引,myisam支持,mysql5.6之后的innodb开始支持

 倒排索引,

 组合索引,索引最左匹配原则(最左前缀)

 选择合适的应用场景建立合适的索引,选择占用更小空间的索引

 explain 来查询计划

技术图片

 

 

 索引下推

 技术图片

 

 

 回表之前就已经把数据进行了一次筛选

 MySQL存储引擎

 技术图片

 

 

 索引维护

技术图片

 

 

技术图片

 

 

查询缓存

mysql8.0之后,没有查询缓存了

AST抽象语法树

技术图片

 

 

查询缓存

技术图片

 

 

技术图片

 

 

技术图片

 

 

日志

服务端日志,binlog

存储引擎端日志

innodb,redolog,用于前滚

技术图片

 

 

wal,write ahead log

技术图片

 

 

log buffer,属于用户空间

undo log,用于回滚

技术图片

 

 

 binlog-服务端日志

redo是innodb独有,binlog所有引擎通用

redo是物理日志,记录某个数据页做了什么修改;binlog是逻辑日志,记录语句原始逻辑

技术图片

 

 

技术图片

技术图片

 

技术图片

 

Redo log 两阶段提交

技术图片

mySql索引

标签:系统   style   原则   唯一索引   explain   地址   mysql8   索引   倒排索引   

原文地址:https://www.cnblogs.com/YC-L/p/14219929.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!