iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL事务是什么
  • 573
分享到

MySQL事务是什么

2024-04-02 19:04:59 573人浏览 薄情痞子
摘要

这篇文章将为大家详细讲解有关Mysql事务是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql事务以及事务隔离级别Mysql事务主要用于处理操作量大,复杂度高的

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

mysql事务以及事务隔离级别

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

    • MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务

    • 事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行

    • 事务用来管理insert,update,delete语句

  • 一般来说,事务必须满足4个条件:原子性,一致性,隔离性,持久性

    • 原子性:一个事务中所有操作,要么全部执行,要么全部不执行不会结束在中间某个环节。事务在执行过程中发生错误会被回滚到事务开始前的状态

    • 一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,包含资料的精确度,串联性以及后续数据库可以自发性的完成预定的工作

    • 隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读取未提交内容,读取提交内容,可重复读和可串行化

    • 持久化:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失

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

事务控制语句:

  • BEGIN或START TRANSACTION;显式地开启一个事务

  • COMMIT;也可以使用COMMIT WORK,二者等价的。COMMIT会提交事务,并使已对数据库进行的所有修改成为永久性

  • ROLLBACK;也可以使用ROLLBACK WORK,二者等价。回滚会结束用户的事务,并撤回正在进行的所有未提交的修改

  • SAVEPOINT identifier;SAVEPOINT允许在事务中创建一个保存点,一个事务可以有多个SAVEPOINT

  • RELESE SAVEPOINT identifier;删除一个事务的保存点,当没有指定的保存点时,执行该语句会抛出一个异常

  • ROLLBACK TO identified;把事务回滚到标记点

  • SET TRANSACTION;用来设置事务的隔离级别。InnoDB存储引擎提供事务隔离级别有READ UNCOMMITTED,READ COMMITTED,REPEATABLE READ和SERIALIZABLE

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

  1. 用BEGIN,ROLLBACK,COMMIT来实现

    • BEGIN开始一个事务

    • ROLLBACK事务回滚

    • COMMIT事务确认

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

    • SET AUTOCOMMIT=0禁止自动提交

    • SET AUTOCOMMIT=1开启自动提交

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

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

  2. read uncommited 读未提交

    • 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用。读取未提交的数据称为脏数据

  3. read COMMIT

    • 大多数数据库系统的默认隔离级别(但不是MySQL)。一个事务只能看见已经提交事务所作的改变。其避免了脏读,但仍然存在不可重复读和幻读问题

  4. repeatable read

    • MySQL的默认级别;确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。避免了脏读和不可重复读,但是会导致另一个问题:幻读。幻读是指用户读取某一个范围的数据行时,另一个事务又在该范围插入了新行,当用户再读取该范围的数据行时,会发现新的幻影行。InnoDB和Falcon存储引擎通过多版本并发控制(mvcC)机制解决了该问题

    • 可重复读的隔离级别下使用了MVCC机制,select操作不会更新版本号,是快照读(历史版本);insert,update和delete会更新版本号,是当前读(当前版本)

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

您可能感兴趣的文档:

--结束END--

本文标题: MySQL事务是什么

本文链接: https://www.lsjlt.com/news/53612.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL事务是什么
    这篇文章将为大家详细讲解有关MySQL事务是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。MySQL事务以及事务隔离级别MySQL事务主要用于处理操作量大,复杂度高的...
    99+
    2024-04-02
  • 什么是mysql事务
    MySQL事务是一组数据库操作的逻辑单元,提供了一种保证数据一致性和完整性的机制,具有以下四个特性:1、原子性,事务中的所有操作被视为一个原子单元,要么全部执行成功,要么全部失败回滚;2、一致性,务开始之前和结束之后,数据库的状态必须保持一...
    99+
    2023-07-28
  • MySQL中事务是什么
    这篇文章给大家分享的是有关MySQL中事务是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. 在MySQL环境中,事务由作为一个单独单元的一个或多个SQL语句组成。这个单元...
    99+
    2024-04-02
  • mysql事务指的是什么
    本文小编为大家详细介绍“mysql事务指的是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“mysql事务指的是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 ...
    99+
    2024-04-02
  • MySQL锁、事务、MVCC是什么
    这篇文章将为大家详细讲解有关MySQL锁、事务、MVCC是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。单条SQL语句执行时,会被当成一个事务提交吗?以下内容摘自 《...
    99+
    2024-04-02
  • MySQL中什么是事务与锁
    这篇文章给大家介绍MySQL中什么是事务与锁,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。  MySQL 中事务的实现  在关系型数据库中,事务的重要性不言而喻,只要对数据库稍有了解的...
    99+
    2024-04-02
  • mysql事务的含义是什么
    这篇文章主要介绍了mysql事务的含义是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql事务的含义是什么文章都会有所收获,下面我们一起来看看吧。mysql事务是指对...
    99+
    2023-05-25
    mysql
  • MySQL中事务是什么意思
    小编给大家分享一下MySQL中事务是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、事务的概念  ...
    99+
    2024-04-02
  • mysql事务特性是什么意思
    mysql事务特性是什么意思?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。mysql事务特性是什么意思事务主要用于处理操作量大,复杂度高的...
    99+
    2024-04-02
  • mysql事务处理指的是什么
    这篇文章主要介绍了mysql事务处理指的是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql事务处理指的是什么文章都会有所收获,下面我们一起来看看吧。在mysql中,...
    99+
    2022-11-30
    mysql
  • MySQL事务管理是什么意思
    小编给大家分享一下MySQL事务管理是什么意思,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!事务处理用来维护数据库等完整性,保证mysql操作要么成功,要么失败(myisam不支持事务)1、关...
    99+
    2024-04-02
  • mysql spring事务的特性是什么
    本篇内容主要讲解“mysql spring事务的特性是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql spring事务的特性是什么”吧!说明支持原数据库事务的隔离级别,加入事务传播...
    99+
    2023-06-20
  • MySQL中事务的特性是什么
    MySQL中事务的特性有:原子性,是指事务要么全部被执行,要么就全部不被执行。一致性,是指事务必须使数据库从一个状态变换成另一个状态,必须处于一致性状态。隔离性,是指多个用户并发访问数据库时,多个并发事务之间要相互隔离。持久性,是指一个事务...
    99+
    2024-04-02
  • MySQL中什么是事件
    MySQL中什么是事件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在MySQL5.1中新增了一个特色功能事件调度器(Even...
    99+
    2024-04-02
  • Mysql事务的四种特性是什么
    小编给大家分享一下Mysql事务的四种特性是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、原子性打开事务,执行SQL语言,最终COMMIT成功的话,所有的...
    99+
    2023-06-14
  • mysql的事务隔离级别是什么
    这篇“mysql的事务隔离级别是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mysq...
    99+
    2023-01-31
    mysql
  • MySQL事务实现的方法是什么
    在MySQL中,可以使用以下方法来实现事务: 使用START TRANSACTION、COMMIT和ROLLBACK语句来开始、提...
    99+
    2024-03-12
    MySQL
  • mysql事务中常见问题是什么
    这篇文章给大家分享的是有关mysql事务中常见问题是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、更新丢失原因:当多个事务选择同一行操作,并且都是基于最初选定的值,由于每个事务都不知道其他事务的存在,就会...
    99+
    2023-06-15
  • MySQL事务的隔离级别是什么
    这篇文章主要介绍了MySQL事务的隔离级别是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL事务的隔离级别是什么文章都会有所收获,下面我们一起来看看吧。一、隔离级别的概念为什么要考虑隔离级别?因为事...
    99+
    2023-07-02
  • mysql事务回滚的原理是什么
    MySQL中的事务回滚是通过将数据库恢复到事务开始之前的状态来实现的。事务回滚的原理如下:1. MySQL使用日志来记录所有对数据库...
    99+
    2023-10-09
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作