MySQL事务是什么

发布时间:2020-12-03 12:01:04 作者:小新
来源:亿速云 阅读:164

这篇文章将为大家详细讲解有关MySQL事务是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

MySQL事务以及事务隔离级别

MySQL事务主要用于处理操作量大,复杂度高的数据。比如在人员管理系统中,你删除一个人员,你就要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等,这些数据库操作语句就构成了一个事务(推荐课程:MySQL教程)

在MySQL命令行的默认是设置下,事务都是自动提交的,即执行SQL语句后就会马上执行COMMIT操作。因此要显式的开启一个事务需要使用命令BEGIN或START TRANSACTION,或者执行命令SET AUTOCOMMIT=0,用来禁止使用当前绘画的自动提交

事务控制语句:

MySQL事务处理主要有两种方法:

  1. 用BEGIN,ROLLBACK,COMMIT来实现

  2. 直接SET来改变MySQL的自动提交模式:

事务四大特性之一:隔离性

  1. 事务A跟事务B之间具有一定的隔离性

  2. read uncommited 读未提交

  3. read COMMIT

  4. repeatable read

  5. serializable

设置事务隔离级别

  1. 在my.cnf文件设置

- READ-UNCOMMITTED
- READ-COMMITED
- REPEATABLE-READ
- SERIALIZABLE
* 例如
[mysqlId]
transaction-isolation = READ-COMMITTED
  1. 通过命令动态设置隔离级别

SET [GLOBAL|SESSION] TRANSACTION ISOLATION LEVEL <isolation-level>
其中isolation-level可以是:
- READ UNCOMMITTED
- READ COMMITTED
- REPEATABLE READ
- SERIALIZABLE

GLOBAL|SESSION表示事务隔离级别的作用范围:
GLOBAL:表示对所有会话有效
SESSION:表示对当前会话有效

事务并发问题

  1. 脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据

  2. 不可重复读:事务A多次读取到同一数据,事务B在事务A多次读取过程中,对数据做了更新并未提交,导致事务A多次读取同一条数据,结果不一致

  3. 幻读:前后读取的结果数据条数不一致。这是因为事务A的多次读取过程中,事务B对表进行插入或删除操作

关于MySQL事务是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. MySQL中事务是什么意思
  2. MySQL事务中的ACID特性是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql事务 mysql数据库 mysql

上一篇:css中如何给li标签添加图标

下一篇:SQLServer动态掩码的案例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》