标签:tran like inno innodb ack 事务 相关 管理系 完整性
MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的相关资料,这些数据库操作语句就构成一个事务。
MYSQL只有 INNODB和BDB类型的数据表才支持事务处理。事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
当一个成功的事务完成后,发出COMMIT命令应使所有参与表的更改才会生效。如果发生故障时,应发出一个ROLLBACK命令返回的事务中引用的每一个表到以前的状态。
原子性(要么全做要么全不做)、一致性(类似原子性)、隔离性(事务彼此独立,对数据操作是独占式的)、持久性(事务对数据的修改是永久的)。
隔离性:如果使用了索引(比如主键),系统据此找到某条记录,则只隔离该条记录;如果使用了全表检索(逐一检查行,没有索引),则被检索的数据都被隔离即隔离表。其他事务需要等待。
mysql> show variables like ‘%autocommit%‘;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit | ON | //自动事务,set autocommit = 0;
+---------------+-------+
1 row in set, 1 warning (0.01 sec)
START TRANSACTION;
...
SAVEPOINT sp1;
...
ROLLBACK sp1;
...
COMMIT;
END TRANSACTION;
标签:tran like inno innodb ack 事务 相关 管理系 完整性
原文地址:https://www.cnblogs.com/dailycode/p/9435904.html