mysql技术内幕_MySQL技术内幕

本文摘自《MySQL技术内幕 InnoDB存储引擎》,由腾讯T4数据库总监姜承尧撰写。主要内容涵盖InnoDB存储引擎、索引、锁、事务、复制和RAID。InnoDB支持事务、行级锁和外键,适合OLTP;MyISAM则适用于OLAP。文章详细讨论了InnoDB的存储结构,如Redo Log、缓冲池、插入缓冲、自适应哈希索引等,并介绍了事务提交流程、锁机制、不同隔离级别的差异。此外,还涉及到了数据库复制和RAID技术。
摘要由CSDN通过智能技术生成

f21d8855680e15986e9c4b645a9ccec4.png

内容摘取自<MySQL技术内幕 InnoDB存储引擎>by姜承尧,作者目前为腾讯T4的数据库总监,本文为书本内容的子集。

内容列表:

  • InnoDB存储引擎
  • 索引(index)
  • 锁(lock)
  • 事务(transaction)
  • 复制(replication)
  • RAID

名词解释:

  • 数据库:文件的集合,frm,ibd等;
  • 数据库实例:程序,位于用户与OS之间的一层数据管理软件
  • OLTP:在线事务处理 OnLine Transaction Processing
  • OLAP:在线分析处理 OnLine Analytical Processing
  • Dirty Page:脏页,内存页和磁盘页数据不一致
  • Redo Log:重做日志
  • LSN:序列号,Log Sequence Number
  • FRM:FoRMat,InnoDB表定义文件
  • IBD:InnoBase Data,InnoDB数据文件

事务提交流程:Write Ahead Log策略:当事务提交时,先写Redo Log,再修改页。

  • 先记录 undo/redo log,确保日志刷到磁盘上持久存储。(确保2/3宕机不丢数据/主从一致)
  • 更新数据记录,缓存操作并异步刷盘。
  • 将事务日志持久化到 binlog。
  • 提交事务,在 redo log 中写入commit记录。

InnoDB存储引擎

69daaab7efc82571651e06dc4cb08cb9.png
  1. 存储引擎
  • 存储引擎是基于表的,而不是数据库。数据库还包括连接池 / Parser / Optimizer / File System等。
  • MySQL数据库重要特点之一就是其插件式的表存储引擎
  • InnoDB存储引擎支持事务,行粒度锁,外键聚集索引;支持mvcc;主要处理OLTP。
  • MyISAM存储引擎不支持事务,表粒度锁,支持空间数据;无崩溃恢复;查询效率更高(唯一优势,且不明显);主要处理OLAP。

fc5b64bbfd7ade80fe78966646ddcda7.png

2.InnoDB存储引擎

  • Redo Log先放到Redo Log Buffer,然后按一定策略到文件系统的Redo Log文件或磁盘innodb_flush_log_at_trx_commit。
  • 分区partition:不同子分区生成不同的idb文件,如t#P#p0.ibd, t#P#p1.ibd;分区类型包括Range(值范围),List(指定值),Hash(用户表达式),Key(数据库提供的哈希函数)。
  • 缓冲池(innodb_buffer_pool)
    • 不包含重做日志Redo Log
    • 页的修改操作,首先修改缓冲池中的页,再以一定机制/频率刷回磁盘。<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值