事务特性:ACID
特性
数据库管理系统中事务(transaction)的四个特性(分析时根据首字母缩写依次解释):原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。(执行单个逻辑功能的一组指令或操作称为事务)
原子性
指事务是一个不可再分割的工作单元,事务中的操作要么都发生,要么都不发生。
code and life
乐观锁和悲观锁, 是并发控制了两种手段, 是一种思想.
在修改数据之前先锁定, 再修改.
之所以叫做悲观锁,是因为这是一种对数据的修改抱有悲观态度的并发控制方式。我们一般认为数据被并发修改的概率比较大,所以需要在修改之前先加锁。
悲观锁的实现,往往依靠数据库提供的锁机制
悲观锁又可以分为共享锁和排它锁
事务就是要保证一组数据库操作,要么全部成功,要么全部失败。在 MySQL 中,事务支持是在引擎层实现的。而MyISAM 引擎就不支持事务.
显示启动
1 | begin / start transaction |
配置启动
1 | set autocommit=0 |
注意: 这种方法下, 任何语句都会开启事务, 直到显示commit / rollback
查询系统长事务
1 | // 查询时间超过60s的长事务 |
查询事务隔离级别
1 | show variables like 'transaction_isolation'; |