读书笔记:《高性能MySQL》——01. MySQL架构与历史

本文介绍了MySQL的三层逻辑架构,包括连接处理、查询解析和存储引擎。详细讲解了并发控制中的锁机制和四种事务隔离级别,以及InnoDB存储引擎的事务支持和死锁处理。此外,还阐述了MVCC的概念及其在InnoDB中的实现。最后,概述了MySQL的主要存储引擎,如InnoDB和MyISAM,并回顾了其发展历程。
摘要由CSDN通过智能技术生成

第一章 MySQL架构与历史

1.1 MySQL逻辑架构

  • 第一层 连接处理、授权认证、安全等
  • 第二层 核心服务功能层,查询解析、分析、优化、缓存以及所有内置函数
  • 第三层 存储引擎 数据存储和提取

逻辑架构图

1.2 并发控制

  • 读锁/共享锁、写锁/排他锁
  • 锁粒度:表锁(table lock)和行锁(row lock)

1.3 事务

  • ACID原则
    • 原子性(atomicity):要么全部成功、要么全部失败
    • 一致性(consistency):事务未提交,数据不会修改
    • 隔离性(isolation):通常事务在未提交前,对其他事务不可见
    • 持久性(durability):事务提交后,修改永久保存
  • 隔离级别
    • READ UNCOMMITTED(读未提交):导致“脏读”,基本没用
    • READ COMMITTED(读已提交):大多数数据库默认隔离级别
    • REPEATABLE READ(可重复读):MySQL默认隔离级别,同一事务多次读取同样记录保持一致
    • SERIALIZABLE(可串行化):最高隔离级别,读取的数据都加锁,实际也很少用
  • 死锁
    • 死锁检测
    • 死锁超时机制(InnoDB解决方案,将持有最少行级排他锁事务回滚)
  • 事务日志
    • WAL(Wtite-Ahead Logging)预写式日志,顺序IO
  • MySQL中的事务
    • InnoDB、NDB Cluster支持事务
    • MyISAM不支持事务
    • 自动提交AUTOCOMMIT,默认打开
    • 隐式和显示锁定

1.4 多版本并发控制(MVCC)

  • 实现原理:保存数据在某个时间点的快照
  • InnoDb的MVCC,每行记录保存两个隐藏列,存放系统版本号

1.5 MySQL的存储引擎

  • InnoDB存储引擎:支持事务,最常用、最重要,主要学习
  • MyISAM存储引擎:早期默认MySQL存储引擎,不支持事务和行锁,只支持表锁
  • 其他存储引擎:不常用

1.6 MySQL时间线

  • 版本3.23(2001)真正“诞生”并获得关注
  • 版本4.0(2003)
  • 版本4.1(2005)
  • 版本5.0(2006)
  • 版本5.1(2008)
  • 版本5.5(2010)Oracle收购SUN后发布的首个版本,本书基于的版本
  • 版本5.6(2012)
  • 版本5.7(2015)
  • 版本5.6(2012)
  • 版本5.7(2015)
  • 版本8.0(2018) GA版本(Generally Available)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值