事务的概念和MySQL事务支持
2013-10-10 17:28
239 查看
事务是由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行。程序和事务是两个不同的概念。一般而言:一段程序中可能包含多个事务。
事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这四个特性也简称ACID性。
(1)原子性:事务是应用中最小的执行单位,就如原子是自然界最小颗粒,具有不可再分的特征一样。事务是应用中不可再分的最小逻辑执行体。
(2)一致性:事务执行的结果,必须使数据库从一个一致性状态,变到另一个一致性状态。当数据库中只包含事务成功提交的结果时,数据库处于一致性状态。一致性是通过原子性来保证的。
(3)隔离性:各个事务的执行互不干扰,任意一个事务的内部操作对其他并发的事务,都是隔离的。也就是说:并发执行的事务之间不能看到对方的中间状态,并发执行的事务之间不能相互影响。
(4)持续性:持续性也称为持久性,指事务一旦提交,对数据所做的任何改变,都要记录到永久存储器中,通常是保存进物理数据库。
数据库的事务有下列语句组成:
一组DML(Data Manipulate Language,即数据操作语言)经过这组DML修改后数据将保持较好的一致性。
一个DDL(Data Definition Language,即数据定义语言)语句。
一个DCL(Data control Language,即数据控制语言)语句。
DDL和DCL语句最多只能有一个,因为DDL和DCL语句都会导致事务立即提交。
当事务所包含的全部数据库操作都成功执行后,应该提交(commit)事务,使这些修改永久生效。
事务提交有两种方式:显式提交和自动提交。
(1)显式提交:使用commit。
(2)自动提交:执行DDL或DCL,或者程序正常退出。
事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这四个特性也简称ACID性。
(1)原子性:事务是应用中最小的执行单位,就如原子是自然界最小颗粒,具有不可再分的特征一样。事务是应用中不可再分的最小逻辑执行体。
(2)一致性:事务执行的结果,必须使数据库从一个一致性状态,变到另一个一致性状态。当数据库中只包含事务成功提交的结果时,数据库处于一致性状态。一致性是通过原子性来保证的。
(3)隔离性:各个事务的执行互不干扰,任意一个事务的内部操作对其他并发的事务,都是隔离的。也就是说:并发执行的事务之间不能看到对方的中间状态,并发执行的事务之间不能相互影响。
(4)持续性:持续性也称为持久性,指事务一旦提交,对数据所做的任何改变,都要记录到永久存储器中,通常是保存进物理数据库。
数据库的事务有下列语句组成:
一组DML(Data Manipulate Language,即数据操作语言)经过这组DML修改后数据将保持较好的一致性。
一个DDL(Data Definition Language,即数据定义语言)语句。
一个DCL(Data control Language,即数据控制语言)语句。
DDL和DCL语句最多只能有一个,因为DDL和DCL语句都会导致事务立即提交。
当事务所包含的全部数据库操作都成功执行后,应该提交(commit)事务,使这些修改永久生效。
事务提交有两种方式:显式提交和自动提交。
(1)显式提交:使用commit。
(2)自动提交:执行DDL或DCL,或者程序正常退出。
相关文章推荐
- 小贝_mysql 存储引擎及事务概念
- MySQL XA 事务支持调研
- mysql表类型MyISAM和InnoDB区别(mysql 不支持事务解决)
- Mysql支持事务处理
- Mysql事务详解(一)事务的概念,四大特性,使用和回滚
- 如何开启mysql的事务支持
- 较全面的php mysql封装,使用mysqli对象支持预处理和事务,可输出执行后的sql
- 7.24 LOCK TABLES/UNLOCK TABLES句法 MySQL不支持事务环境 我靠!!!
- Dapper EF 等orm Mysql不支持事务解决办法
- mysql 事务 并发 锁 相关概念
- 一个支持主从,事务以及连接池功能的mysql-proxy脚本
- [MySQL FAQ]系列 -- mysql是否支持跨库事务
- mysql 存储过程(支持事务管理)
- mysql 存储过程(我自己写的第一个存储过程,支持事务管理)2
- 让mysql支持事务
- MySQL 事务的基本概念
- mysql 锁与事务的一些概念
- MySql不支持事务解决
- django 文件上传和菜单分级,mysql支持事务,F模块自增字段, python发送get,post请求
- mysql 存储过程事务支持回滚