MYSQL复习提纲

本文是对于MySQL技术内幕 InnoDB存储引擎 (第2版)的笔记和提纲整理

主要用于复习和知识点快速复习

第二章:Innodb存储引擎

笔记:https://blog.csdn.net/qq_41157876/article/details/109173407

2.1 Innodb的后台线程

  • Master Thread *1 (重做日志缓冲 + 合并插入缓冲)
  • IO Thread *4+4
  • Purge Thread(资源清理) *1
  • Page Cleaner Thread(刷新脏页) *1

2.2 内存

  • 缓冲池
  • 重做日志缓冲
  • 额外的内存池

2.3 Checkpoint技术

2.4 innodb特性

  • 插入缓冲
  • 二次写
  • 自适应哈希
  • 刷新邻接页

第三章:文件

笔记:https://blog.csdn.net/qq_41157876/article/details/109173663

Ref:事务日志:https://www.cnblogs.com/f-ck-need-u/p/9010872.html

3.1 参数配置文件(my.conf)

3.2 日志文件

  • 错误日志(error log)
  • 查询日志 (log)
  • 慢查询日志 (slow query log)
  • 事务日志 (redo log + undo log)
    • redo log
      • 三种redo_buffer到os_buffer到磁盘的写入规则
      • 基本单位:redo log block
      • log group和redo log file
    • undo log
  • 二进制日志 (binlog)
  • 中继日志

3.3 套接字文件

3.4 pid文件

3.5 表结构frm文件

3.6 innodb和myisam文件

第四章:表

笔记:https://blog.csdn.net/qq_41157876/article/details/109183340

4.1 Innodb存储结构

  • 页/块

4.2 视图

4.3 分区表

第五章:索引与算法

笔记:https://blog.csdn.net/qq_41157876/article/details/109187544

5.1 索引分类

  • 数据结构角度
    • 全文索引
    • 哈希索引
    • B树索引
      • 聚集索引
      • 非聚集索引(辅助索引)
      • MRR优化
      • ICP优化
  • 逻辑角度
    • 主键索引
    • 唯一索引
    • 普通索引

5.2 Cardinality值

第六章:锁

笔记:https://blog.csdn.net/qq_41157876/article/details/109256584

Ref:https://www.cnblogs.com/crazylqy/p/7611069.html

6.1 锁

  • 锁的类型(从粒度分类)
    • 行锁(都是悲观锁)
      • 共享锁(S Lock):读锁
      • 排他锁(X Lock):写锁
    • 表锁:Innodb意向锁
      • 意向共享锁(IS Lock):事务打算给数据行加行共享锁,事务在给一个数据行加锁前必须获得该表的IS锁
      • 意向排他锁(IX Lock):事务打算给数据行加行排他锁,事务在给一个数据行加锁前必须获得该表的IX锁
    • 页锁
  • 锁的算法(Innodb)
    • Record Lock:单个行记录上锁
    • Gap Lock:间隙锁,锁范围,开区间
    • Next-Key Lock:Record + Gap,锁范围,左开右闭
  • 如何加锁(重点)
  • 其他
    • 外键和锁
    • ICP问题
    • 显示地关闭Gap Lock
    • 查看方法
  • 死锁

第七章:事务

笔记:https://blog.csdn.net/qq_41157876/article/details/109256442

7.1 事务特性:ACID

  • 原子性(Atomicity)
  • 一致性(Consistency)
  • 隔离性(Isolation)
  • 持久性(Durability)

7.2 事务实现

  • redo
  • undo
  • purge
  • group commit

7.3 事务的隔离级别

  • 丢失更新,脏读,幻读,不可重复读
  • 读未提交,读已提交,可重复读,串行化

7.4 其他

  • 开启事务方法
  • 两阶段锁协议
  • 当前读和快照读
  • 一致性非锁定读和一致性锁定读

7.5 MVCC多版本并发控制

番外章:优化相关

笔记:https://blog.csdn.net/qq_41157876/article/details/115362009

11.1 常用优化手段

  • show status:查看各个语句频率
  • show processlist:查看低效率的语句
  • explain:分析特定语句(最常用)
  • show profiles:查看之前各个语句的耗时
  • trace工具:查看具体sql执行语句时的优化细节

11.2 索引的使用建议

  • 和底层原理有关的索引失效 / 回表问题
  • 不要在索引列上进行运算操作,索引失效
  • 字符串类型不加单引号,索引失效
  • in走索引,not in失效

11.3 SQL语句优化

  • 大批量insert
  • insert语句优化
  • order by语句优化
  • group by语句优化
  • 嵌套查询优化
  • limit优化
  • SQL提示(use, ignore, force index)

猜你喜欢

转载自blog.csdn.net/qq_41157876/article/details/109173359