网站开发流程甘特图,海外广告投放渠道营销,下列哪些店铺适合交换友情链接,海外网络推广专员首先MySQL中#xff0c;数据库的四个特性分为#xff1a;
原子性一致性隔离性持久性
也就是我们常说的ACID。
那么这四个特性数据库是如何实现的呢#xff1f;
持久性--- redo log#xff1a; redo log#xff08;重做日志#xff09;#xff1a; redolog本身是…首先MySQL中数据库的四个特性分为
原子性一致性隔离性持久性
也就是我们常说的ACID。
那么这四个特性数据库是如何实现的呢
持久性--- redo log
redo log重做日志 redolog本身是一种日志记录的是事务提交时对数据页MySQL在硬盘中存储数据文件的最小单位由数据行组成的物理修改日志。每当事务对数据页发生改动redolog都会记录。当服务宕机可用来同步数据。 原子性一致性--- undo log
undo log回滚日志 用于记录数据被修改之前的信息注意是逆向记录主要是为了回滚操作这也被我们成为逻辑日志。 比如我们delete一条记录undo log会写入一条insert。 隔离性----锁MVCC
事务的隔离性是由锁和mvcc实现的。 其中mvcc的意思是多版本并发控制。指维护一个数据的多个版本使得读写操作没有冲突它的底层实现主要是分为了三个部分。 第一个是 隐藏字段第二个是 undo log日志第三个是 readView读视图 隐藏字段在mysql中给每个表都设置了隐藏字段有一个是trx_id(事务id)记录每一次操作的事务id是自增的另一个字段是roll_pointer(回滚指针)指向上一个版本的事务版本记录地址。undo log记录回滚日志存储老版本数据在内部会形成一个版本链在多个事务并行操作某一行记录记录不同事务修改数据的版本通过roll_pointer指针形成一个链表。readView解决的是一个事务查询选择版本的问题在内部定义了一些匹配规则和当前的一些事务id判断该访问那个版本的数据不同的隔离级别快照读是不一样的最终的访问的结果不一样。如果是读已提交每一次执行快照读时生成ReadView如果是可重复读仅在事务中第一次执行快照读时生成ReadView后续复用