IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 浅谈数据库ACID -> 正文阅读

[大数据]浅谈数据库ACID

ACID是指数据库管理系统中,事务所应该具备的四个特性,原子性、一致性、隔离性、持久性。

原子性

原子性是指一个事务是一个不可分割的单元,其中的操作要么都成功,要么都失败,即一个sql执行过程中遇到错误,已执行的语句必须回滚,数据库回退到事务执行前的状态。

实现原理:undo log

MySQL中的日志有很多种,二进制日志、错误日志、慢查询日志等,此外InnoDB存储引擎还提供了redo log和undo log两种事务日志,redo log是用来保证事务的持久性,undo log是事务原子性和隔离性实现的基础。

实现原子性的关键是当事务回滚时会撤销所有已经执行成功的sql语句,InnoDB实现事务回滚靠的是undo log。当事务对数据库执行修改时,InnoDB会生成对应的undo log,当事务执行失败或执行rollback时,就可以根据undo log中的信息将数据库进行恢复到事务执行前的状态。

undo log是逻辑日志,记录的是sql执行的相关信息,当事务回滚的时候,InnoDB会根据undo log中的信息执行与之相反的操作。

一致性

一致性是指事务在开始之前和执行结束之后,数据库的完整性约束没有被破坏。

只有保证了数据库的原子性、隔离性和持久性才能保证数据库的一致性。

隔离性

隔离性是指多个事务并发操作时,各个事务之间互不影响。

持久性

持久性是指事务一旦提交,对数据库的改变是永久的。

实现原理:redo log

InnoDB作为MySQL的存储引擎,数据是存储在磁盘上的,为了解决每次读写磁盘IO效率低的问题,InnoDB提供了缓存(buffer pool),buffer pool包含了磁盘中部分数据页的映射,作为访问数据库的缓冲。当从数据库中读取数据时,会先从buffer pool中读取,如果buffer pool中没有,会从磁盘中读取后放入buffer pool中;当向数据库中写入数据时,会首先写入buffer pool中,buffer pool中修改的数据库会定期刷入到磁盘中。

buffer pool的使用提高了数据库的读写效率,也带来了问题。当MySQL宕机的时候,buffer pool中修改的数据无法刷入磁盘中,会导致数据丢失,无法保证事务的持久性。

redo log可以解决这个问题,当数据库修改时,redo log也会记录对应操作,当事务提交时,会调用fsync接口对redo log进行刷盘。当MySQL宕机时,在重启数据库后,可以通过redo log中的内容对数据库进行恢复。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:32:03  更:2022-03-30 18:34:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:23:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码