什么是事务?MySQL如何支持事务?

事务是由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行。

程序和事务是两个不同的概念。一般而言:一段程序中可能包含多个事务。(说白了就是几步的数据库操作而构成的逻辑执行单元

事务具有四个特性原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这四个特性也简称ACID性。

(1)原子性:事务是应用中最小的执行单位,就如原子是自然界最小颗粒,具有不可再分的特征一样。事务是应用中不可再分的最小逻辑执行体。(最小了,不可再分了

(2)一致性:事务执行的结果,必须使数据库从一个一致性状态,变到另一个一致性状态。当数据库中只包含事务成功提交的结果时,数据库处于一致性状态。

一致性是通过原子性来保证的。(说罢了就是白狗变成了黑狗,不能出现斑点狗!

(3)隔离性:各个事务的执行互不干扰,任意一个事务的内部操作对其他并发的事务,都是隔离的。

也就是说:并发执行的事务之间不能看到对方的中间状态,并发执行的事务之间不能相互影响。(说白了,就是你做你的,我做我的!

(4)持续性:持续性也称为持久性,指事务一旦提交,对数据所做的任何改变,都要记录到永久存储器中,通常是保存进物理数据库。(说白了就是一条道跑到黑

MySQL如何支持事务?

MYSQL的事务处理主要有两种方法

  1.用begin,rollback,commit来实现
    begin开始一个事务
    rollback事务回滚
       commit 事务确认
  2.直接用set来改变mysql的自动提交模式
          mysql默认是自动提交的,也就是你提交一个query,就直接执行!可以通过
          set autocommit = 0 禁止自动提交
          set autocommit = 1 开启自动提交
       来实现事务的处理

原文地址:https://www.cnblogs.com/Rivend/p/12089526.html

时间: 2024-10-10 09:48:17

什么是事务?MySQL如何支持事务?的相关文章

MySql不支持事务解决

用的是一个绿色版的mysql数据库,发现不支持事务,在网络上搜集资料找到解决方案: 1.执行语句  SHOW ENGINES; 如果发现InnoDB全部显示为“YES”,说明该版本的数据库支持事务 2.修改某个表支持事务 ALTER TABLE 表名 ENGINE = INNODB; 如果没有出错,则修改该表支持事务成功.

Dapper EF 等orm Mysql不支持事务解决办法

MySQL表类型MyISAM和InnoDB区别 MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.与其他存储引擎比较,MyISAM具有检查和修复表格的大多数工具. MyISAM表格可以被压缩,而且它们支持全文搜索.它们不是事务安全的,而且也不支持外键.如果事物回滚将造成不完全回滚,不具有原子性.如果执行大量的SELECT,MyISAM是更好的选择.

mysql 表支持事务的方法

1.在mysql客户管,如:Navicate.SQLyog在导航面板中选择要转换为InnoDB存储引擎类型的数据库,例如选择db_yunping数据库.如下图所示: 2. 在查询窗口中输入 show engines; 3. 在"显示查询框"页面中,我们发现,InnoDB类型的Transactions项为YES,这说明InnoDB类型的数据库或数据表支持事务处理. 下面,我们只要将相关的数据表修改为InnoDB存储引擎类型,就能支持事务处理操作了. 4. 在查询窗口中输入 ALTER T

什么是数据库的事务?MySql中哪些存储引擎支持事务?

什么是事务? 事务由一个或多个sql语句组成一个整体,如果所有的语句执行成功那么修改将会全部生效,如一条sql语句将销量+1,下一条再+1,倘若第二条失败,那么销量将撤销第一条sql语句的+1操作,只有在该事务中所有的语句都执行成功才会将修改加入到数据库中. 事务的特性 事务具体四大特性,也就是经常说的ACID 1. 原子性(Atomicity)  原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响. 

漫谈MySql中的事务

最近一直在做订单类的项目,使用了事务.我们的数据库选用的是MySql,存储引擎选用innoDB,innoDB对事务有着良好的支持.这篇文章我们一起来扒一扒事务相关的知识. 为什么要有事务? 事务广泛的运用于订单系统.银行系统等多种场景.如果有以下一个场景:A用户和B用户是银行的储户.现在A要给B转账500元.那么需要做以下几件事: 1. 检查A的账户余额>500元: 2. A账户扣除500元: 3. B账户增加500元: 正常的流程走下来,A账户扣了500,B账户加了500,皆大欢喜.那如果A账

【MySQL】漫谈MySQL中的事务及其实现

最近一直在做订单类的项目,使用了事务.我们的数据库选用的是MySQL,存储引擎选用innoDB,innoDB对事务有着良好的支持.这篇文章我们一起来扒一扒事务相关的知识. 为什么要有事务? 事务广泛的运用于订单系统.银行系统等多种场景.如果有以下一个场景:A用户和B用户是银行的储户.现在A要给B转账500元.那么需要做以下几件事: 1. 检查A的账户余额>500元: 2. A账户扣除500元: 3. B账户增加500元: 正常的流程走下来,A账户扣了500,B账户加了500,皆大欢喜.那如果A账

mysql引擎和事务

对于应用程序和用户来说,同样一张表的数据无论用什么引擎来存储,看到的数据都是一样的,只是不同的引擎在功能.占用空间大小.读取性能等方面可能有所差别. mysql最常用的存储引擎为Innodb.MyISAM和全文索引 5.5.5以前默认存储引擎为MyISAM,5.5.5及之后默认存储引擎为Innodb mysql> show engines \G查看当前数据库系统支持的引擎 mysql5.5支持事务的引擎:Innodb/ndb(集群的引擎) 对于MyISAM来说,每一个表对应于磁盘上的三个文件,这

事务基础知识-->Spring事务管理

Spring虽然提供了灵活方便的事务管理功能,但这些功能都是基于底层数据库本身的事务处理机制工作的.要深入了解Spring的事务管理和配置,有必要先对数据库事务的基础知识进行学习. 何为数据库事务 “一荣俱荣,一损俱损”这句话很能体现事务的思想,很多复杂的事物要分步进行,但它们组成一个整体,要么整体生效,要么整体失效.这种思想反映到数据库上,就是多个SQL语句,要么所有执行成功,要么所有执行失败. 数据库事务有严格的定义,它必须同时满足 4 个特性:原子性(Atomic).一致性(Consist

MYSQL 支持事务码?

在缺省模式下,MYSQL是autocommit模式的,所有数据库更新操作都会即时提交.所以,在缺省情况下,MYSQL是不支持事务的. 但是如果你的MYSQL 表类型是INNODB tables 或者BDB tables的话,就可以使用事务.set autocommit=0 可以使MYSQL在非autocommit模式下运行. 在非autocommit模式下,你必须使用commit来提交你的更改,或者rollback来回滚你的更改. 例如: START TRANSACTION; SELECT @A