1修改事务隔离级别
全局修改
修改mysql.ini配置文件
[mysqlId]
transaction-isolation=REPEATBLE-READ
对当前session修改
登录mysql客户端后,执行命令set session transaction isolation level read uncommit;
select @@TX_ISOLATION;
2mysql有一个autocommit参数 默认是on(自动开始、自动提交、执行完后自动结束)
由于行锁在自动提交之后被释放,那么自动提交对于select for update的行锁机制没有用
3锁机制
共享锁:
由读表操作加上的锁,加锁后其他用户只能获取该表或行的共享锁,不能获取排他锁,也就是说只能读不能写
排他锁:
由写表操作加上的锁,加锁后其他用户不能获取该表或行的任何锁,典型是mysql事务中
4锁范围:
行锁:对某行记录加上锁
表锁:对整个表加上锁
5A用户对表某条数据进行修改时,为这行添加了行锁,所以其他用户不能对它进行修改
6可重复提交:B开启事务进行修改,B提交事务,A提交了事务,才可以查到B修改之后的数据
7可串行化(序列化)对表查询时就会对表或行加上共享锁,其他事务只能进行读操作