当前位置: 首页 > article >正文

数据库四大特性的实现原理

保证原子性和一致性

主要依赖于unlog,undo log保证了事务的原子性和一致性。
回滚日志,用于记录数据被修改前的信息,作用包含两个:提供回滚和 MVCC(多版本并发控制)。undo log和redoloq记录物理日志不一样,它是逻辑日志。
可以认为当delete一条记录时,undolog中会记录一条对应的insert记录,反之亦然
当update一条记录时,它记录一条对应相反的update记录。当执行roback时,就可以从undo log中的逻辑记录读取到相应的内容并进行回滚。

保证隔离性

通过设置数据库隔离级别来处理(未提交读、已提交读、重复度、序列化)

通过版本控制MVCC排他锁保证数据隔离性

全称 Multi-Version Concurrency Control,多版本并发控制。指维护一个数据的多个版本,使得读写操作没有冲突MVCC的具体实现,主要依赖于数据库记录中的隐式字段、undo log日志、readView 

保证持久性

通过redo log保证数据持久性

当缓冲池中的数据已一定频率刷新到磁盘时,突然宕机了,这时需要借助redo log来进行数据恢复。保证了事务的持久性


http://www.kler.cn/a/274257.html

相关文章:

  • OSPF的状态机
  • 基于python+django的外卖点餐系统
  • FFmpeg第二话:FFmpeg 主要结构体剖析
  • STM32F103 | Embedded IDE03 - 使用OpenOCD在STM32F103项目时出现下载固件失败
  • PHP MySQL 插入多条数据
  • 电脑丢失dll文件一键修复的多种方法分析,电脑故障修复攻略
  • 3月19日做题
  • 详解命令docker run -d --name container_name -e TZ=Asia/Shanghai your_image
  • ②免费AI软件开发工具测评:通义灵码 VS 码上飞
  • IPD集成产品开发:塑造企业未来竞争力的关键
  • 《C++游戏编程入门》第9章 高级类与动态内存:Game Lobby
  • pdf转图片(利用pdf2image包)
  • 干好工作18法
  • Linux 常用操作命令大全
  • 理论学习:with torch.no_grad()
  • #Ubuntu(修改root信息)
  • Gradle v8.5 笔记 - 从入门到进阶(基于 Kotlin DSL)
  • linux 安装常用软件
  • Playwright中locator() 方法快速定位网页元素[全面总结]
  • 【C++ 哈希】
  • 2024流星全自动网页生成系统重构版源码
  • 微信支付宝--充ChatGPTPLUS/openAI key
  • 5.1.1、【AI技术新纪元:Spring AI解码】Openai chat
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Refresh)
  • 恒驰喜讯 | 亮相华为中国合作伙伴大会2024,荣膺最佳服务一致性奖等3大奖项
  • MySQL表字段数据类型设计建议