事务
定义:发生一系列连续操作。(只针对数据的操作,不针对结构)
适用于:跟钱有关的(银行,支付宝等)
后三个收费事务操作分两种:自动事务(默认)、手动事务
手动事务的操作流程
1、开启事务:start transaction;
2、进行事务操作
3、关闭事务:
提交事务:commit; 同步数据表,表示操作成功回滚事务:
rollback; 直接清空日志表,表示操作失败
事务操作原理:
事务开启之后,所有的操作都会临时保存到事务日志,而事务日志只有在得到commit命令才会同步到数据表,其他任何情况都会清空,比如rollback、断电、断开连接
回滚点
设置回滚点语法:savepoint 回滚点名字;
回到回滚点语法:rollback to 回滚点名字;
自动事务处理
show variables like 'autocommit';
关闭自动提交:
set autocommit=off/0;
set autocommit=0; 关闭事务自动提交
set autocommit=1;打开事务自动提交
事务的四大特性:ACID(重点)
A:Atomic,原子性(整体,不可分割,要么都成功,要么都失败)
C:Consistency,一致性(开启事务时没commit,两个窗口数据一样,整个操作过程中数据都是一致的;提交(commit)了,另一个窗口就跟着变了)
I:Isolation,隔离性(互不影响)
D:Durability,持久性(只要commit提交,永久改变,回滚点( rollback)不好使)
锁机制(行锁,表锁,页锁)
没使用索引的会上升表锁(整个表都被锁住)
rollbac或commit解锁
网友评论