mysql事物 总结_Mysql事务总结
数据库 事务的特性ACID 事务(Transaction)是并发控制的基本单位。 所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转帐工作:从一个帐号扣款并使另一个帐号增款,这两个操作要么都执行,要么都不执
数据库 事务的特性ACID
事务(Transaction)是并发控制的基本单位。
所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转帐工作:从一个帐号扣款并使另一个帐号增款,这两个操作要么都执行,要么都不执行。
数据库事务必须具备ACID特性,ACID是Atomic(原子性)、Consistency(一致性)、Isolation(隔离性)和Durability(持久性)的英文缩写。
原子性:指整个数据库事务是不可分割的工作单位。只有使据库中所有的操作执行成功,才算整个事务成功;事务中任何一个SQL语句执行失败,那么已经执行成功的SQL语句也必须撤销,数据库状态应该退回到执行事务前的状态。
一致性:指数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。例如对银行转帐事务,不管事务成功还是失败,应该保证事务结束后ACCOUNTS表中Tom和Jack的存款总额为2000元。
隔离性:指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。事务查看数据更新时,数据所处的状态要么是另一事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看到中间状态的数据。
持久性:指的是只要事务成功结束,它对数据库所做的更新就必须永久保存下来。即使发生系统崩溃,重新启动数据库系统后,数据库还能恢复到事务成功结束时的状态。
事务的(ACID)特性是由关系数据库管理系统(RDBMS,数据库系统)来实现的。数据库管理系统采用日志来保证事务的原子性、一致性和持久性。日志记录了事务对数据库所做的更新,如果某个事务在执行过程中发生错误,就可以根据日志,撤销事务对数据库已做的更新,使数据库退回到执行事务前的初始状态。
数据库管理系统采用锁机制来实现事务的隔离性。当多个事务同时更新数据库中相同的数据时,只允许持有锁的事务能更新该数据,其他事务必须等待,直到前一个事务释放了锁,其他事务才有机会更新该数据。
MySql事务应用
事务的特征:
Atomicity(原子性)
Consistency(稳定性,一致性)
Isolation(隔离性)
Durability(可靠性)
注意:事务只针对对数据数据产生影响的语句有效。
show engines //查看mysql锁支持的数据引擎。
MyISAM不支持事物,InnoDB支持事物。
默认情况下,MySQL将以自动提交模式运行,这意味着没一条小命令都将当做一个只有一条命令的事物来执行。
如果要让mysql支持支持事务,只需要修改数据引擎(alter table person type=INNODB)。
使用start transaction或者begin命令来开启一个事物,使用commit,或者rollback来结束事物。
事物的结束:事物除了commit,rollback会结束外,使用DDL或者DCL语句也会结束。
保存点:通过保存点机制:用户可以在事物里用savepoint name命令设置一些保存点,以后用户在使用rollback to savepoint name结束事物时,name之前的数据保存,之后的数据不保存。
mysql使用事务的关键字
begin //打开一个事务。
commit //提交到数据库。
rollback //取消操作。
savepoint //保存,部分取消,部分提交。
alter table person type=INNODB //修改数据引擎。
示例:
begin
update person set name='efgh' where id =10
select * from person
rollback
select * from person
示例:
alter table person type=INNODB
begin
update person set name='efgh' where id =10
select * from person
commit
select * from person
begin
delete from person where id=21
update person set name='efgh' where id =10
commit/rollback
针对上面部分提交,必须用到保存点。
事务保存点注意:
1.只能取消到某个保存点 rollback to savepoint p1。
2.不能提交某个保存 commit to savepoint p2//错误写法。
3.最后commit 把未取消的保存点去不提交到数据。
事务保存点使用例子:
begin;
update score set score=40 where scoreid=1;
savepoint s1;
update score set score=50 where scoreid=2;
select * from score;
rollback to savepoint s1;
select * from score;
commit;
关于MySQL事务的操作就介绍到这里,如果您想了解更多关于MySQL数据库的知识,可以看一下这里的文章:http://database.51cto.com/mysql/,相信一定不会让大家失望的!
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉
本文系统来源:php中文网
mysql事物 总结_Mysql事务总结相关推荐
- spring mysql事物级别_mysql事务级别和spring中应用
一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有 ...
- 什么是mysql事物定义_Mysql事务原理
1. 什么是数据库事务 1.1 事务的应用场景 电商平台中例如常见的下单流程,会同时操作订单表,库存表等,有时候这些操作要在一个事务里面完成.还有金融系统业务的银行转账,需要保证一个账户增加另一个账户 ...
- mysql事物介绍_MySQL事务介绍
从事务理论的角度来说,可以把事务分为以下几种类型: 扁平事务类型(Flat Transaction) 带有保存点的扁平事务(Flat Transaction with Savepoints) 链事务( ...
- mysql ib_logfile 数量_Mysql 事务日志(Ib_logfile)
mysql的innodb中事务日志ib_logfile(0/1) 概念: 事务日志或称redo日志,在mysql中默认以ib_logfile0,ib_logfile1名称存在,可以手工修改参数,调节开 ...
- mysql+nest+嵌套事务_MySQL——事务
事务(Transaction)是数据库区别于文件系统的重要特性之一,事务会把数据库从一种一致状态转换为另一种一致状态. 关键词事务四大特性ACID MySql事务隔离级别 MVCC多版本并发控制实现方 ...
- 什么是mysql事物定义_MySQL中事务概念的简洁学习教程
事务是由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行.程序和事务是两个不同的概念.一般而言:一段程序中可能包含多个事务. 事务具有四个特性:原子性(Atomici ...
- mysql show 原理_mysql事务的实现原理
此篇文章算是对mysql事务的一个总结,基本把mysql事务相关的知识点都涵盖到了,面试问来问去无非也就是这些,在了解这些之前我们先对mysql在执行的过程中 有一个整体的认识,如下图 如上图所示, ...
- mysql特性举例_MySQL事务的四大特性和隔离级别
1.事务的四大特性(ACID) #### 1.1.原子性(Atomicity) 原子性是指事务包含的一系列操作要么全部成功,要么全部回滚,不存在部分成功或者部分回滚,是一个不可分割的操作整体. 1.2 ...
- java mysql实现原理_MySQL事务实现原理
MySQL事务隔离级别的实现原理 知识储备 只有InnoDB支持事务,所以这里说的事务隔离级别是指InnoDB下的事务隔离级别 隔离级别 读未提交:一个事务可以读取到另一个事务未提交的修改.这会带来脏 ...
最新文章
- 开发日记-20190519 关键词 Linux学习路径
- graph 关系图 设置
- Android入门之AlertDialog
- Windows7 Credential Manage
- Oracle-查看oracle是否有表被锁
- 解决 JSP 页面报错 equal symbol expected
- Spring框架学习笔记07:基于XML配置方式使用Spring MVC
- 完全没法比!华为P40 Pro和iPhone 9宣传视频同曝光
- 4.4GDI基本图形
- How to shrink disk for KVM
- python yield理解_Python3 中 Yield 理解与使用
- 计算机建模报告,计算机三维建模及分析实验报告单.doc
- 解析库之——beautifulsoup
- 数据预处理第3讲:归一化与离散化
- python安装pygame教程_Pygame安装教程
- 【服务器】揭秘淘宝286亿海量图片存储与处理架构
- Chrome浏览器语音自动播放功能
- Excel图表制作(二):滚动条实现动态图表
- 55400-73-2,Ms-PEG5-Ms含有两个甲磺酸基部分的PEG连接物
- Linux 中的rsh,ssh
热门文章
- 【原创】PostgreSQL 增量备份详解以及相关示例
- mysql 设置编码
- a different object with the same identifier val...
- 忘记Oracle中System和Sys密码的解决办法
- 数字化转型将迎提速黄金期,金融行业如何转型?
- CLEARTEXT communication to xxx not permitted by network security policy
- 使用SourceTree拉取代码出现Permission denied (publickey)
- 基于gulp的前端脚手架(二)
- 运维自动化轻量级工具pssh
- CentOS升级gcc到4.8.2以支持C++11标准的方法