ACID
术语”ACID”是一个简称,没个事物的处理必须满足ACID原则,即原子性(A)、一致性(C)、
隔离性(I)、和持久性(D)。
1、原子性
原子性意味着每个事物都必须被认为是一个不可分割的单元。
原子执行是一个或者全部发生或者什么也没有发生的问题,在一个原子操作中,如果事物中的任何一个语句失败,前面执行的语句都将返回,以保证数据的整体性没有收到影响,这在一些关键系统中尤其重要,实现世界的应用程序,执行数据传输或更新,必须保证不出现数据丢失或数据错误,以保证数据安全性
2
一致性
不管事物是完全完成还是中途失败,当事务使系统处于一致的状态时存在一致性。
在Mysql中,一致性主要由Mysql的日志机制处理,它记录了数据库的所有变化,为事务恢复提供了跟踪记录,如果系统在事务处理中间发生错误,MYSQL恢复过程将使用这些日志来发现事务是否已经完全地执行,是否返回,因而一致性属性保证了数据库从不返回一个未处理完的事务。
3
隔离性
隔离性是指每个事务在它自己的空间发生,和其他发生在系统中的事务隔离,而且事务的结果只是有在它完全被执行是才能看到
当系统支持多个同时存在的用户和连接时,这就尤其重要,如果系统不遵循这个基本原则,就可能导致大量数据的破坏,如过每个事务的各自空间的完整性很快地被其他冲突事务所侵犯。
4
持久性
持久性是指即使系统崩溃,一个提交的事务仍然存在,当一个事务完成,数据库的日志已经被更新时,持久性就开始发生作用,大多数RDBMS成品通过保存所有行为的日志来保证数据的持久性,这些行为是指在数据库中以任何方法更改数据,数据库日志记录了所有对于表的更新、查询、报表等。
事务处理
1 开始事务
当一个应用程序的第一条SQL语句或者在COMMIT或ROLLBACK语句后的第一条SQL执行后,一个新的事务也就开始了,另外还可以使用另外一个STARTTRANSACTION语句来显示地启动一个事务。
语法格式
START TRANSACTION | BEGIN WORK
一条BEGIN WORK语句可以用来替代START TRANSACTION 语句,但是STARTTRANSACTION更常用写