ACID及事务隔离级别

2)ACID及事务隔离级别

ACID四大特性解释

  • 原子性(Atomicity):一个事务内的操作,要么全部成功,要么全部失败。
  • 一致性(Consistency):数据库从一个一致性状态,转移到另一个一致性状态。
  • 隔离性(Isolation):多个并发事务之间是隔离的。
  • 持久性(Durability):数据一旦提交,改变是永久的。

ACID靠什么保证

  • 原子性由undo log日志保证, 他记录了需要回滚的日志信息,事务回滚时撤销已经执行成功的sql;
  • 一致性由其他的三大特性来保证;
  • 隔离性由MVCC来保证;
  • 持久性由redo log保证。重做日志缓冲(redo log buffer)和重做日志(redo log)组成,前者在内存中,后者在磁盘中。redo log 用来记录已成功提交事务的修改信息,并且把redo log持久化到磁盘

事务

(1)事务:
是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,这些操作要么同时成功,要么同时失败

(2)事务的控制:
MySQL中的事务默认自动提交,我们可以改成手动

-- 查看事务的提交方式
select @@autocommit;
set @@autocommit = 0; # 设置0为取消自动提交,1为开启自动提交
-- 开启事务
begin; | start transaction;
-- 提交事务
commit;
-- 回滚事务
rollback;

(3)事务的隔离级别

隔离级别脏读丢失修改不可重复读幻读
Read Uncommitted 读未提交可以出现可以出现可以出现可以出现
Read committed 读已提交(Oracle 默认)不能出现可以出现可以出现可以出现
Repeatable Read 可重复读(mysql 默认)不能出现不能出现不能出现可以出现
Serializable 可串行化不能出现不能出现不能出现不能出现

解释:从上到下安全性由低到高,性能由高到低

-- 查看事务的隔离级别
select @@transaction_isolation
-- 设置事务隔离级别 session是当前的会话,global是全局
set [session|global] transaction isolation level {隔离级别} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/866782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第十二章 执行引擎

一、执行引擎概述 概述 执行引擎是 Java 虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引…

使用docker创建nginx容器部署前端项目

一、docker部署nginx服务 1、创建本地文件 本地创建nginx文件夹,并在其下创建www、config、logs三个文件夹 2、docker拉取nginx镜像 docker pull nginx 3、创建nginx容器 docker run -d --name nginx -p 8088:80 nginx 4、将nginx.conf容器配置拷贝到本地创建…

AlmaTech股份有限公司如何通过有效的营销本地化解锁全球市场

在当今全球化经济中,企业必须调整营销策略,以引起不同地区不同受众的共鸣。营销本地化,包括定制营销材料以满足各种市场的文化、语言和监管要求,对于实现这一目标至关重要。本案例研究探讨了领先的电子商务公司AlmaTech股份有限公…

解锁水利智慧:智慧水利的深度剖析与未来展望,探讨智慧水利如何助力水利行业实现数字化转型与智能化升级

本文关键词:智慧水利、智慧水利工程、智慧水利发展前景、智慧水利技术、智慧水利信息化系统、智慧水利解决方案、数字水利和智慧水利、数字水利工程、数字水利建设、数字水利概念、人水和协、智慧水库、智慧水库管理平台、智慧水库建设方案、智慧水库解决方案、智慧…

数据驱动下的SaaS渠道精细化运营:提升ROI的实战指南

在当今数字化转型的大潮中,SaaS(Software as a Service)企业面临着日益激烈的市场竞争。为了在市场中脱颖而出,实现可持续增长,SaaS企业必须转向更为精细化的运营模式,而数据驱动则是实现这一目标的关键。本…

GPT提示词模板

BRTR 原则 # 背景(Background) - 描述任务的背景信息,包括任务的起因、目的、相关的历史信息或当前状况。 - 提供足够的背景信息以便让ChatGPT理解任务的上下文。 # 角色(Role) - 定义ChatGPT在任务中所扮演的角色&…

TCP 的安全可靠

TCP的安全可靠 重传机制往返时间测量快速重传 流量控制拥塞控制 重传机制 T C P确认从另一端收到的数据以提供可靠的运输层,但数据和确认都有可能会丢失。 T C P通过在发送时设置一个定时器来解决这种问题。如果当定时器溢出时还没有收到确认,它就重传该…

【C++】认识使用string类

【C】STL中的string类 C语言中的字符串标准库中的string类string类成员变量string类的常用接口说明成员函数string(constructor构造函数)~string(destructor析构函数)默认赋值运算符重载函数 遍历string下标[ ]迭代器范围for反向迭代器 capacitysizelengthmax_sizeresizecapaci…

不错的用户需求访谈方法

不错的用户需求访谈方法,可以用如下的矩阵,用来引导用户访谈:

【C++】哈希表 ---开散列版本的实现

你很自由 充满了无限可能 这是很棒的事 我衷心祈祷你可以相信自己 无悔地燃烧自己的人生 -- 东野圭吾 《解忧杂货店》 开散列版本的实现 1 前言2 开散列版本的实现2.1 节点设计2.2 框架搭建2.3 插入函数2.4 删除函数2.5 查找操作2.6 测试 Thanks♪(・ω&#x…

python如何不保留小数

1、int() 向下取整(内置函数) n 3.75 print(int(n)) >>> 3 n 3.25 print(int(n)) >>> 3 2、round() 四舍五入(内置函数) n 3.75 print(round(n)) >>> 4 n 3.25 print(round(n)) >>> 3 …

SpringBoot实战:轻松实现XSS攻击防御(注解和过滤器)

文章目录 引言一、XSS攻击概述1.1 XSS攻击的定义1.2 XSS攻击的类型1.3 XSS攻击的攻击原理及示例 二、Spring Boot中的XSS防御手段2.1 使用注解进行XSS防御2.1.1 引入相关依赖2.1.2 使用XSS注解进行参数校验2.1.3 实现自定义注解处理器2.1.4 使用注解 2.2 使用过滤器进行XSS防御…

[单master节点k8s部署]18.监控系统构建(三)Grafana安装

Grafana是一个跨平台的开源的度量分析和可视化工具。支持多种数据源,比如OpenTSDB,Prometheus,ElasticResearch,Cloudwatch等。 Grafana安装 通过yaml配置grafana的pod和service,grafana工作在kube-system的命名空间…

基于STM32F103C8T6的同步电机驱动-电流采样去直流偏置

基于STM32F103C8T6的同步电机驱动-电流采样去直流偏置 本系列文章: 基于STM32F103C8T6的同步电机驱动-CubeMX配置与IQmath调用基于STM32F103C8T6的同步电机驱动-PWM驱动代码以及SVPWM的实现基于STM32F103C8T6的同步电机驱动-ADC采样与基于MT6701的角度获取基于STM32F103C8T6的…

C#(asp.net)房屋租赁管理系统-计算机毕业设计源码64421

目 录 摘要 1 绪论 1.1 研究背景与意义 1.2开发现状 1.3论文结构与章节安排 2 房屋租赁管理系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分析 …

标贝语音识别在智能会议系统的应用案例

语音识别是指将语音信号转换成文本或者其他数字信号形式的过程,随着人工智能在人们日常工作生活中的普及,语音识别技术也被广泛的应用在智能家居、智能会议、智能客服、智能驾驶等领域,以语音识别技术在智能会议系统中的应用为例,…

超高频RFID电子标签在服装供应链管理中的应用与优势

随着物联网技术的发展,RFID电子标签在服装行业中的应用越来越广泛。特别是超高频RFID电子标签,因其独特的优势,成为服装供应链管理的理想选择。本文将为您介绍超高频RFID电子标签的工作原理及其在服装供应链管理中的应用与优势。 超高频RFI…

Node之Web服务

前言 本文将讲解node的web服务 通过讲解http请求,node创建web服务等知识点让你更加深入的理解web服务和node创建的web服务 HTTP请求是什么? HTTP请求是客户端(通常是浏览器或其他应用程序)与服务器之间进行通信的一种方式。 …

Linux-C语言实现一个进度条小项目

如何在linux中用C语言写一个项目来实现进度条?(如下图所示) 我们知道\r是回车,\n是换行(且会刷新) 我们可以用 \r 将光标移回行首,重新打印一样格式的内容,覆盖旧的内容,…