0
点赞
收藏
分享

微信扫一扫

MySQL-9. 事务

googlefrank 04-09 09:00 阅读 3

9.1 事务概念

事务是指对数据库进行的一批操作,由一个或多个相关的增/删/改/查语句组成。在同一个事务当中,这些操作最终要么全部执行成功,要么全部失败,不会存在部分成功的情况。
只读事务:表示在事务中执行的是一些只读操作,如查询,但是不会做insert、update、delete操作(执行会报错),数据库内部对只读事务可能会有一些性能上的优化。
start transaction read only;

9.2 事务和锁

当执行事务操作时,mysql会在表上加锁,防止其它用户改表的数据。

9.3 回退事务

9.4 提交事务

        当执行了commit语句后,会确认事务的变化、结束事务、删除保存点、释放锁,数据生效,其它会话[其他连接]将可以查看到事务变化后的新数据[所有数据就正式生效] 。

9.5 事务隔离级别

        多个连接开启各自事务操作数据库中数据时,数据库系统要负责隔离操作,以保证各个连接在获取数据时的准确性。
        事务读取的是开启事务时数据库当下的状态!!
        事务AB同时开启,即使A提交了事务,数据库有改动,B也不应该读取到改动后的数据,不应该受影响!
MySQL隔离级别定义了事务与事务间的隔离程度:从上至下隔离级别增强
隔离级别脏读可能性不可重复读可能性幻读可能性加锁读
READ-UNCOMMITTED读未提交不加锁
READ-COMMITTED读已提交不加锁
REPEATABLE-READ可重复读不加锁
SERIALIZABLE可串行化加锁
加锁:会发现当前有事务在操作但还没提交,会卡住,直到其他事务提交或超时退出。
默认可重复读,一般情况下不必修改。
# 查看当前会话的隔离级别
SELECT @@transaction_isolation;

# 查看系统当前隔离级别
SELECT @@global.transaction_isolation;

# 设置当前会话隔离级别
SET SEESION TRANSACTION ISOLATION LEVEL 隔离级别;

# 设置系统当前隔离级别
SET GLOBAL TRANSACTION ISOLATION LEVEL 隔离级别;

# 全局修改,修改默认的隔离级别,在my.ini文件中添加
transaction_isolation = 隔离级别
举报

相关推荐

MySQL基础(9)-事务

9、Redis事务详解

《MySQL》事务

MySQL【事务】

mysql事务

【MySQL】事务

事务——MySQL

Mysql 事务

Mysql事务

0 条评论