
数据库
mysql、redis
豆爷的it之旅
越努力越幸运
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
事务的原子性、一致性、隔离性和持久性理解
事务是指对系统进行的一组操作,为了保证系统的完整性,事务需要具有ACID特性,具体如下:1. 原子性(Atomic) 一个事务包含多个操作,这些操作要么全部执行,要么全都不执行。实现事务的原子性,要支持回滚操作,在某个操作失败后,回滚到事务执行之前的状态。 回滚实际上是一个比较高层抽象的概念,大多数DB在实现事务时,是在事务操作的数据快照上进行的(比如,MVCC),并不修改实际的数据,如果有错并不会提交,所以很自然的支持回滚。 而在其他支持简单事务的系统中,不会在快照上更新,而...转载 2020-11-16 10:51:13 · 3599 阅读 · 0 评论 -
数据库的三大范式理解
一、三大范式简介1. 第一范式:要求所有字段值不可再分,保持每个字段的原子性 2. 第二范式 :表中的每个字段都要和主键相关,而不能之和主键(联合主键)的一部分相关,即不存在部分依赖一张表中只存储一种数据。比如要设计一个学生课程信息表【学号,课程号,姓名,学分】,该表包含了两类信息:学生信息与课程。由于非主键必须依赖主键,所以表的联合主键为(学号,课程号),该表中学分依赖课程号,姓名依赖学号,所以不符合第二范式若不满足第二范式,会出现以下问题:数据冗余:每条记录都含有相同的信息 删除异原创 2020-11-11 21:47:16 · 452 阅读 · 0 评论 -
MVCC版本控制理解
MVCC(multi-version-concurrent-control)操作的时候会生成事务id每条记录都会拼接trx_id(事务id)和roll_pointer(回滚指针)2个字段每次操作都会生成一条undo log日志,回滚指针指向前一条记录查询的时候会读取出ReadView:【未提交的事务id】数组+已提交的最大事务id,并根据readview从undo log日志中最新的记录依次往下找(1)可重复读:从最新记录开始找:如果当前记录的事务id<未提交事务的最小id,则可读如果当原创 2020-11-11 20:37:15 · 153 阅读 · 0 评论