mysql数据库事务隔离级别
2016-01-26 15:21
267 查看
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可串行化(序列化)对表查询时就会对表或行加上共享锁,其他事务只能进行读操作
全局修改
修改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可串行化(序列化)对表查询时就会对表或行加上共享锁,其他事务只能进行读操作
相关文章推荐
- MySQL多表连接删除问题相关
- mysql limit
- 命令行操作MySQL的一些简单命令
- mysql的grant命令
- etl循环跑数据(mysql)
- MySQL中优化常用的查询sql语
- MySQL中优化常用的查询sql语
- mysql join on 联表
- Mysql手动安装
- MySQL DBA 成长之路
- 如何在MySQL客户端Navicat 上创建存储过程返回结果集
- mysql创建存储过程(根据时间字段来更新数据)
- Mysql新建用户和数据库授权
- MySql LeftJoin On 与 Where的差异
- mysql创建用户、授权[转]
- MySQL分区技术 (一)
- MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)
- MySQL:MySQL日期数据类型、MySQL时间类型使用总结
- MySQL数据库学习笔记(八)----JDBC入门及简单增删改数据库的操作