Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

asdbex1078/MySQL

Open more actions menu

Repository files navigation

MySQL

MySQL优化

暂时先放个脑图,后期会不断完善。。。

由于图片太大(5M),未能显示,建议下载看看,贼屌。

图片地址

MySQL存储引擎

(下图概览,脑图已上传,地址)

innoDB概览

InnoDB

  1. 从MySQL架构到InnoDB架构

    1. MySQL架构

    2. InnoDB架构

    3. InnoDB的多线程模型

  2. InnoDB简介

  3. InnoDB关键特性

  4. InnoDB内存结构

    1. 缓冲池 - Buffer Pool
      • 为什么会出现
      • 是什么
      • 架构
      • 关键概念 - 数据页
      • 怎么做的
      • 服务器的内存大小很重要
      • 缓冲池中缓存的数据页的类型
      • 怎么识别数据在哪个缓冲页中
      • 缓冲池实例
      • Buffer Pool如何应对高并发场景
      • Buffer Pool的初始化
      • LRU List
      • Free List
      • Flush List
      • 总结
    2. 日志缓冲区 - Log Buffer
      • redo log buffer
      • undo log buffer
    3. 变更缓冲区 - Change Buffer
      • 简介
      • 什么时候合并到数据页
      • 在架构中的位置
      • 作用
      • 组成部分
      • 参数配置
      • 监控变更缓冲区
      • 其他信息
    4. 额外内存池
  5. InnoDB磁盘结构

    1. 页逻辑存储结构
      • 页的结构
        • 页中插入数据的过程
        • COMPACT行格式
        • Page Directory
        • Page Header
        • File Header
        • File Trailer
      • 总结
    2. 表 - table
    3. 索引 - index
      • 聚簇索引和二级索引
      • InnoDB索引的物理结构
      • 排序索引的创建
    4. 表空间 - TableSpaces
      • 系统表空间
      • 每个表的表空间
      • InnoDB内存中对 .ibd 文件的管理
      • 数据字典和 .idb 文件的关系
      • 通用表空间
      • 创建通用表空间
      • 撤销表空间
      • 临时表空间
    5. 数据字典 - Data Dictionary
  6. MySQL文件

    1. 参数文件
      • 作用
      • 参数文件类型
      • 参数类型
      • 参数文件加载顺序
    2. 日志文件
      • 错误日志
      • 慢查询日志
        • 作用
        • 查看慢日志是否开启 / 慢日志位置
        • 满足什么条件会记录到慢日志中
        • 测试慢日志记录
        • mysqldumpslow的高级用法
        • 慢查询日志的输出方式
      • 二进制日志
        • 简介
        • 参数控制
        • 二进制日志的切换
        • 删除二进制日志文件
        • 相关参数
        • 查看二进制日志内容
      • 查询日志
    3. socket文件
    4. pid文件
    5. MYISAM引擎文件
    6. InnoDB常规表文件
    7. InnoDB Redo Log
      • 概念及作用
      • redo log的组成部分
      • 内存中的 redo log buffer
      • 磁盘上的 redo log file 文件
      • 日志块 log block
      • log group 和redo log file
      • redo log格式
      • 什么时候产生redo log?什么时候日志刷盘?
      • 脏页刷盘机制
      • 什么时候释放redo log
      • InnoDB的恢复行为
      • 举例
      • 总结
    8. InnoDB Undo Log
      • 了解几个概念
      • 简介
      • 作用
      • 存储方式
      • 关键结构体
      • purge线程
      • group commit
      • 存储位置
    9. LSN
      • 什么是 LSN
      • 根据 LSN 能获得什么信息
      • LSN 存在的位置
      • 查看 LSN 信息
      • 举例
    10. bin log 和 redo log 的区别
    11. bin log、redo log、undo log写入顺序 - 案例
  7. InnoDB锁

    1. latch - 线程锁
      • 简介
      • 作用
      • 举例
      • 如何查看
      • 分类
      • latch争用发生的原因
      • 如何降低latch争用
      • InnoDB Buffer Pool并发控制加锁过程
    2. lock - 事务锁 介绍
      • 简介与latch区别
      • 加锁位置
      • 加锁原则
    3. latch 和 lock 的区别
    4. lock分类
      • 表级锁
        • 意向锁
        • 自增自动上锁
      • 行级锁
        • 共享读锁
        • 排他写锁
        • 记录锁
        • 间隙锁
        • next-key锁
        • 插入意向锁
        • 空间所以你谓词锁
      • 页级锁
    5. lock加锁案例分析
    6. 不同SQL加的不同lock锁
    7. 死锁
      • 死锁简单案例
      • 死锁本质
      • InnoDB死锁实例
      • 死锁必要条件
      • InnoDB死锁检测
      • 死锁检测机制 - wait-for graph
      • 禁用死锁检测
      • 如何避免死锁
  8. InnoDB事务

  9. 其他知识点

MYISAM

Memory

TempTable

涉及MySQL其他

参考文献:

  1. MySQL官方网站

  2. 阿里数据库月报

  3. 阿里云开发者社区

  4. 《高性能MySQL 第3版》

  5. 《MySQL技术内幕 InnoDB存储引擎》

  6. 简书博客

  7. CSDN博客

  8. 知乎

  9. 其他博客


本文一些知识点未深入研究,链接摘录如下,感兴趣可以继续研究。

延申阅读:

  1. MySQL · 内核分析 · InnoDB mutex 实现分析
  2. MySQL · 内核特性 · InnoDB btree latch 优化历程
  3. MySQL · 引擎特性 · InnoDB UNDO LOG写入 - 源码分析
  4. MySQL · 源码阅读 · InnoDB伙伴内存分配系统实现分析

关于本文文件结构如下

  • mysql-image : 所有图片都会保存到这里,根据 .md 文件的排序命名
  • mysql-optimization : MySQL优化的相关总结
  • mysql-others : MySQL其他,包含所有脑图
  • mysql-storage-engines : MySQL中的存储引擎,如 InnoDB 、MYISAM等

About

从入门到删库跑路

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.