Mysql InnoDB浅析
Golden_Dog
这个作者很懒,什么都没留下…
展开
-
Mysql InnoDB 事务简单理解
1. 事务基本特性: ACIDA 由undo 来实现的I 由锁实现D 由redo实现C 由AID共同保证2. undo 实现了 事务的回滚 以及 MVCC事务的回滚: 记录下事务期间的所有Update/Delete/Insert操作的前后value,当需要rollback时会做一个相反的操作。MVCC:undo恰好记录下了事务期间的快照信息,当Update/Delete原创 2018-01-31 14:32:06 · 1101 阅读 · 0 评论 -
InnoDB理解
个人理解InnoDB主要实现了两个功能:速度+正确性思维导图如下:原创 2018-02-05 22:10:51 · 178 阅读 · 0 评论 -
Mysql InnoDB 结构
1. Master Thread(老版本的基本逻辑,之后版本无非在此基础上做了一些细节调优,更加适应时代)脏页刷新、合并插入缓冲、UNDO回收每秒操作流程:重做日志缓冲刷新到磁盘(记录操作)合并插入缓冲刷新100个脏页至磁盘(checkpoint)如果当前没有用户活动,则切换到background loop每十秒操作流程:刷新脏页至磁盘合并插入缓冲重做日志缓...原创 2018-11-24 14:07:00 · 99 阅读 · 0 评论 -
单机与分布式一致性理解
ACID是数据库支持的基本特性:A:原子性 = 一荣俱荣,一损俱损。支持提交+回滚。单机:方案:通过undo日志(逻辑反操作)实现。分布式:方案:2PC/3PC/Paxos。一方面多个服务相关的数据库之间需要一荣俱荣,一损俱损;另一方面每个服务的分布式数据库内部需要保证每个节点的原子性(当有分表的时候)。 C:一致性 = 从一个正确的状态到下一个正确的状态单机:...原创 2018-12-01 18:33:42 · 279 阅读 · 0 评论 -
分库分表初识
分库: 一般用于拆分不同的业务场景。业务场景之间关联越少越好分表:一般用于拆分同类数据。 难点:跨库/跨表查询操作:1. 排序应用层/中间件 需要做归并排序2. 函数处理 max/min/sum/count应用层/中间件 需要做处理3. 求平均值转化为sum + count4. 非排序分页先按照条件确定每个表的个数,按照比例获取5. 排序后分页...原创 2018-12-01 22:15:29 · 118 阅读 · 0 评论 -
InnoDB事务理解
1. 标准事务【官方定义】read-uncommitted:会出现脏读,读到未提交的内容read-committed:会出现不可重复读,读到提交了的内容(某行)repeatable read:会出现幻读,范围读取读到新insert的内容(某范围行)Serializable:完美 2. InnoDBread-uncommitted:无甚区别read-committed...原创 2018-12-12 22:38:35 · 484 阅读 · 0 评论