当前位置:Gxlcms > 数据库问题 > mySql索引

mySql索引

时间:2021-07-01 10:21:17 帮助过:16人阅读

  • 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   索引   倒排索引   

    人气教程排行