这是我参与「第五届青训营 」伴学笔记创作活动的第11天
一、本次学习的知识背景
存储系统 ·块存储、文件存储、对象存储、key-value存储 数据库系统 ·关系型数据库、非关系型数据库 分布式架构 ·数据分布策略、数据复制协议、分布式事务算法
二、本次学习的内容
RDBMS事务ACID
RDBMS 事务(Transaction):是由一组SQL语句组成的一个程序执行单元(Unit),它需要满足ACID特性。 BEGIN; UPDATE account_table SET balance = balance -‘小目标' WHERE name =‘抖音”; UPDATE account_table SET balance = balance +‘小目标’ WHERE name=‘杨洋”;COMMIT; ACID: 原子性(Atomicity):事务是一个不可再分割的工作单元,事务中的操作要么都发生,要么都不发生。 ·一致性(onsistency):数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。 隔离性(solation):多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果。 持久性(urability):在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。
事务引擎一Atomicity与Undo Log
BIEGIN UPDATE account_table SET balanco = balance- 小目标 WHERE name ='挥自; LPOATE aCcoUnI COMMIT. 如何将数据库回退到修改之前的状态? Undo Log Uirdo Log是逻辑日志,记录的是数据的增量变化。利用UndoLog可以进行事务回滚,从而保证事务的原子性。同 时也买现了多版并发控制(MVCC),解决读写并发控制和一致性读的问题。
SQL引擎——Executor
每个Operator调用Next操TF,访问下层Operator,获得下 层Operator返回的一行数据,经过计算之后,将这行数据返回给上层。 优点: 每个算子独立抽象实现,相互之间没有耦合,逻辑结构简单缺点: 每计算一条数据有多次函数调用开销,导致CPU效率不高。 向量化 编译执行