mySql索引

时间:2021-01-05 11:25:40   收藏:0   阅读:0

技术图片

 局部性原理

 时间局部性和空间局部性

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

索引

技术图片

 

技术图片

技术图片

 

 

 扰动函数

 技术图片

 

 

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

技术图片

 

 

 技术图片

 

 

 B树

技术图片  技术图片

技术图片

 

 

  B+树

技术图片

 

 

 技术图片

技术图片

 

 

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

  回表

技术图片

 

 mysql MyISAM -- B+Tree

 

技术图片

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

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

 回表

技术图片

 

 

 索引分类

技术图片

 

 

 覆盖索引,选择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 两阶段提交

技术图片

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!