Mysql设置事务隔离模式

来源:互联网 发布:布施无畏的淘宝店铺 编辑:程序博客网 时间:2024/05/17 07:21

Mysql设置事务隔离级别

SET [SESSION|GLOBAL] TRANSACTION ISOLATION LEVEL
READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE

1、不带SESSION、GLOBAL的SET命令
只对下一个事务有效
2、SET SESSION
为当前会话设置隔离模式
3、SET GLOBAL
为以后新建的所有MYSQL连接设置隔离模式(当前连接不包括在内)
4种隔离级别(由低到高)
   READ UNCOMMITTED
不隔离SELECT
其他事务未完成的修改(未COMMIT),其结果也考虑在内 (脏读,幻读,不可重复读均允许)
   READ COMMITTED
把其他事务的 COMMIT 修改考虑在内
同一个事务中,同一 SELECT 可能返回不同结果 (允许幻读和不可重复读,但不允许脏读)
   REPEATABLE READ默认级别
不把其他事务的修改考虑在内,无论其他事务是否用COMMIT命令提交过
同一个事务中,同一 SELECT 返回同一结果(前提是本事务,不修改) (允许幻读,但不允许不可重复读和脏读;)
   SERIALIZABLE
和REPEATABLE READ类似,给所有的SELECT都加上了 共享锁 (幻读,不可重复读和脏读都不允许)(事务串行化,会降低数据库的效率)

原创粉丝点击