每秒redo log 刷盘一次
索引
B+树索引、全文索引、哈希索引 。联合索引/多列索引、覆盖索引、倒排索引、前缀索引
需要牢记的是 , B+ 树索引本身并不能找到具体的一条记录 , 能找到只是该记录所在的页 。数据库把页载人到内存 , 然后通过Page 再进行二叉查找 。只不过二叉查找的时间复杂度很低 , 同时在内存中的查找很快 , 因此通常忽略这部分查找所用的时间 。
MySQL两阶段提交过程:
两阶段提交分别为和阶段 。
锁 关键点
存储弓I擎支持意向锁设计比较简练 , 其意向锁即为表级别的锁 。设计目的主
要是为了在-一个事务中揭示下一-行将被请求的锁类型 。其支持两种意向锁:
存储弓|擎实现了如下两种标准的行级锁:
锁的算法 行锁的算法
存储引擎有3种行锁的算法 , 其分别是:
锁的问题
脏读
不可重复读
丢失更新
阻塞
死锁:死锁是指两个或两个以.上的事务在执行过程中 , 因争夺锁资源而造成的一种互相等待的现象 。
事务 事务的特性ACID事务的隔离级别
实际上mysql在可重复读隔离级别就解决了幻读问题 , 通过next-key
隔离级别问题
读未提交
脏读 不可重复度 幻读
读已提交
不可重复度 幻读
可重复读
幻读
可串行化
无问题
事务的实现
事务隔离性由第6章讲述的锁来实现 。原子性、一致性、持久性通过数据库的redo log和undo log来完成 。redo log称为重做日志 , 用来保证事务的原子性和持久性 。用来保证事务的一致性 。有的DBA或许会认为undo是redo的逆过程 , 其实不然 。redo和undo的作用都可以视为是一种恢复操作 , redo恢复提交事务修改的页操作 , 而undo回滚行记录到某个特定版本 。因此两者记录的内容不同 , redo通常是物理日志 , 记录的是页的物理修改操
作 。undo 是逻辑日志 , 根据每行记录进行记录 。
MVCC
read view 。trx id 。roll
- 通识强化学习,初步了解强化学习的运行规则和估值方法
- 集百家所论 sarsa算法和qlearning算法的不同之处的详细深入探讨
- 计算机事业单位专技岗评职称,「回应」事业单位申报职称,这些需要你了解!...
- 颗粒篇 [深入理解NAND Flash ] 闪存芯片物理结构与_SLC/MLC
- DDR3 内存大小计算
- python 三体 模拟_三体究竟有多可怕?用Python建模来深度了解
- 核工程:了解核反应堆的运行原理和组成结构
- 软件技术开发和了解:探索数字世界的无限潜力
- 一文了解通用行为识别ActionRecognition:了解及分类
- 超详细解读+快速入门 一文快速了解ClickHouse 战斗民族的开源搜索引擎