首页 > 数据库 >数据库事务

数据库事务

时间:2023-07-13 12:33:16浏览次数:36  
标签:事务 窗口 隔离 数据库 提交 数据

数据库事务四大特性

1、原子性(Atomicity)
  即使事务的一部分失败,整个事务也会失败。这样,每个事务都必须 100% 成功才能成功提交到数据库。
2、一致性
系统要么将事务写入数据库(将数据库从一种有效状态更改为另一种状态),要么还原事务。
3、隔离性
隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。
4、持久性
持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。


事务演示

1、通过命令行查看 MySQL 8.0 事务隔离级别
select @@transaction_isolation;

2、从命令行开启两个窗口,随后开启两个事务

通过对比在第一个窗口没有提交事务之前,第二个窗口查看不了第一个窗口更改的数据

当第一个窗口执行了事务提交之后,第二个窗口才能看见第一个窗口更改过的数据
3、提示 : 数据库默认采取的是自动提交事务

事务隔离级别

1、脏读
读取未提交的数据,也被称之为脏读(Dirty Read)
2、不可重复读
同一事务的其他实例在该实例处理其间可能会有新的commit,所以同一select可能返回不同结果。
3、重复读
不可重复读是指在对于数据库中的某个数据,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间隔,被另一个事务修改并提交了。
存在幻读问题:幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影” 行。InnoDB和Falcon存储引擎通过多版本并发控制(MVCC,Multiversion Concurrency Control)机制解决了该问题。
4、Serializable 序列化
最高的事务隔离级别,在该级别下,事务串行化顺序执行,可以避免脏读、不可重复读与幻读

标签:事务,窗口,隔离,数据库,提交,数据
From: https://www.cnblogs.com/ayizzz/p/17550156.html

相关文章

  • PHP 生成数据库的 markdown 字段说明文档,支持 mysql,postgresql
    安装composerrequirepeng49/db2markdown命令行使用phpvendor/bin/db2markdown输入数据库的地址(host),端口(port)用户名,密码,要导出的表,默认是*,生成所有表的文档,指定多个表明用逗号隔开,如:table1,table2$phpsrc/bin/db2markdownpleaseenterthedb(1mys......
  • 怎么在数据库里关闭mysqlbinlog 这个问题怎么解决?
    项目方案:关闭MySQLBinlog1.项目背景MySQLBinlog是MySQL数据库的事务日志,它记录了数据库的所有操作,包括插入、更新和删除等操作。在某些情况下,我们可能需要关闭MySQLBinlog来提高数据库的性能或保护敏感数据。2.方案介绍本方案将介绍如何在MySQL数据库中关闭MySQLBinlog。......
  • 数据库编程概述
    数据库编程概述PL/SQLProcedureLanguage封装了sql语句的过程语言。如何在数据库中定义过程语言。Declare声明变量;begin程序处理过程;exceptionend;--eg1:查询目标工资打印输出setserveroutputon;---开启输出declarev_namevarchar2(20);v_sal number;begin......
  • 数据库模式对象
    数据库模式对象对象名称作用TABLE表存储数据的基本结构最小单元VIEW视图以不同的侧面反映表的数据,是一种逻辑上的表INDEX索引加快表的查询速度CLUSTER聚簇将不同表的字段并用的一种特殊结构的表集合SEQUENCE序列生成数字序列,用于在插入时自动填充表......
  • 向量数据库的崛起:从矢量搜索到深度学习 (二)
    前言在上一节中,我们简要介绍了向量数据库的背景以及对非结构化数据进行向量化的方法,即Embedding。那么我们如何将这些特征向量应用于搜索任务呢?在搜索任务中,最常见的情况是从数据库中查找与给定向量最相似的数据。因此,我们需要一种能够衡量向量之间相似程度的算法,这也是本节将要......
  • mysql数据库2
    约束条件 在数据类型的基础上再添加限制条件"""约束条件的意思是,在数据类型的基础上再添加限制条件"""'约束条件通常在创建表的时候添加'。1.unsigned去除符号(一般用过来去除负号(-)也可用来取出@*/等特殊符号)createtablet1(idintunsigned);2.zerofill位数......
  • Spring事务属性
            ......
  • Spring事务角色
       ......
  • Spring事务简介
        @Transasctional这个可以写在方法上也可以写在类或者接口上写在类或者接口上,那么这个类或这个接口里面的全部方法都开启了事务   注意:PlatfromTransactionManager这个接口时Spring提供的标准接口,而下面的DataSourceTransactionManager实......
  • 揭开 RocketMQ 事务消息的神秘面纱
    事务消息是RocketMQ的高级特性之一,相信很多同学都对于其实现机制很好奇。这篇文章,笔者会从应用场景、功能原理、实战例子、实现细节四个模块慢慢为你揭开事务消息的神秘面纱。1应用场景以电商交易场景为例,用户支付订单这一核心操作的同时会涉及到下游物流发货、积分变更、......