返回顶部
首页 > 资讯 > 数据库 >mysql 事务解析
  • 307
分享到

mysql 事务解析

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

事务(transaction) 事务是业务逻辑的一个基本的单元组成。 每一个事务由一条条sql语句组成。 和事务相关的语句(insert,delete,update)这些D

事务(transaction)

事务是业务逻辑的一个基本的单元组成。

每一个事务由一条条sql语句组成。

和事务相关的语句(insert,delete,update)这些DML语句

事务的存在保证了数据的安全性。

事务机制:

每一次执行DML语句都会记录操作,但不会修改数据,等到所有DML执行,

最后提交事务(删除记录,修改硬盘数据)或者回滚事务(删除记录,不修改数据)。

事务由四大特性:ACID

  • A:原子性,事务是最小的工作单元
  • C:一致性,事务中的DML语句要么都执行成功,要么都失败
  • I:隔离性,事务与事务之间隔离。
  • D:持久性,最后数据持久化到硬盘,才会结束

事务的隔离级别:

1.读未提交(read uncommitted),表示一个事务可以读取到另一个事务没有提交的数据

这种级别存在脏读现象

2.读以提交(read committed),可以读取到已经提交的数据

这种级别解决了脏读现象,但是不可以重复读

3.可重复读(repeatable read),事务读取的数据,与其他事务提交数据无关,可以重复读取,事务开始的数据。

解决了不可重复读现象,但是存在幻读,读取到的数据不真实。

4.序列化读/串行化读。解决了所有问题,和多线程里面的线程安全相似。但是存在效率低下。因为事务需要排队。

Mysql数据库默认的隔离级别是第三级别。可重复读。

mysql事务默认自动提交。执行一条DML直接修改硬盘上的数据。

想要手动提交事务。在执行DML之前。先start transaction;然后执行DML,最后提交或者回滚。

演示手动回滚事务:


drop table if exists t_user1;

create table t_user1(

id int(3) primary key auto_increment,

username varchar(10)

);

mysql> create table t_user1(

-> id int(3) primary key auto_increment,

-> username varchar(10)

-> );

Query OK, 0 rows affected (0.02 sec)

mysql> insert into t_user1(username) values('h1');

Query OK, 1 row affected (0.01 sec)

mysql> select * from t_user1;

+----+----------+

| id | username |

+----+----------+

| 1 | h1 |

+----+----------+

1 row in set (0.00 sec)

mysql> rollback;//回滚事务

Query OK, 0 rows affected (0.00 sec)

mysql> select * from t_user1;//回滚之后还是和之前一样,因为myql自动提交了

+----+----------+

| id | username |

+----+----------+

| 1 | h1 |

+----+----------+

1 row in set (0.00 sec)

mysql> start transaction;//手动开启事务,关闭事务自动提交

Query OK, 0 rows affected (0.00 sec)

mysql> insert into t_user1(username) values('h2');

Query OK, 1 row affected (0.01 sec)

mysql> insert into t_user1(username) values('h3');

Query OK, 1 row affected (0.00 sec)

mysql> insert into t_user1(username) values('h4');

Query OK, 1 row affected (0.00 sec)

mysql> select * from t_user1;

+----+----------+

| id | username |

+----+----------+

| 1 | h1 |

| 2 | h2 |

| 3 | h3 |

| 4 | h4 |

+----+----------+

4 rows in set (0.00 sec)

mysql> rollback;//回滚

Query OK, 0 rows affected (0.01 sec)

mysql> select * from t_user1;

+----+----------+

| id | username | 最后硬盘上的数据还是和之前一样。

+----+----------+ 回滚删除记录,不修改硬盘上的数据。

| 1 | h1 |

+----+----------+

1 row in set (0.00 sec)

到此这篇关于mysql 事务解析的文章就介绍到这了,更多相关mysql 事务内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: mysql 事务解析

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

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

猜你喜欢
  • mysql 事务解析
    事务(transaction) 事务是业务逻辑的一个基本的单元组成。 每一个事务由一条条sql语句组成。 和事务相关的语句(insert,delete,update)这些D...
    99+
    2024-04-02
  • 深入解析MySQL 事务
    目录事务的四大特性 ( ACID )脏读不可重复读幻读MySQL的隔离级别事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。 事务的四大特性 ( ACID ...
    99+
    2024-04-02
  • [MySQL]02关于事务的解析
    目录 原子性 一致性 持久性 隔离性 事务隔离级别 并发执行可能存在问题 脏读问题 不可重复读 幻读 难点解析 原子性 事务最核心的就是原子性 以前人们认为原子不可再分,用原子性来表示一个事务不可分割 update account ...
    99+
    2023-09-04
    数据库
  • MySQL索引事务详细解析
    目录一、索引 1.概念2.作用3.缺陷4.使用场景5.使用1.查看索引2.创建索引3.删除索引6.案例二、事务1.为什么使用事务2.事务的概念3.使用4.特性一、索引 1.概念 索...
    99+
    2024-04-02
  • MySQL事务ACID原理深度解析
    什么是MySQL事务? 事务是指对数据库的一组操作的集合,集合中的SQL语句要么全部执行成功,要么就全部失败,如果集合中任一操作出错,则此集合所有对数据库的操作全部回滚。 以常见的购物操作举例,用户下单后要执行订单创建、减库存等一系列操...
    99+
    2018-05-21
    MySQL事务ACID原理深度解析
  • MySQL事务的基本概念解析
    MySQL事务的基本概念解析 MySQL是一种常用的关系型数据库管理系统,支持事务处理。事务是数据库操作的基本单位,通过事务可以保证一系列操作的原子性、一致性、隔离性和持久性。本文将详...
    99+
    2024-03-01
    mysql 事务 概念
  • redis事务解析
    1.redis事务相关命令MULTI:             MULTI命令用于开启redis事务,MULTI会把执行该命令的客户端从非事务态转变为事务态,并且这个命令的返回值永远是OK。EXEC:   ...
    99+
    2024-04-02
  • 浅析MySQL 锁和事务
    MySQL本身也是在文件系统的基础上发展而来,因为锁的存在使之有所不同。 MySQL作为一种数据库软件,难免会存在对其共享资源的并发访问,为了协调和管理不同资源的并发访问,也就产生了锁机制,因为锁机制的存在为数据库...
    99+
    2022-05-13
    MySQL MySQL 事务
  • MySQL事务实例分析
    这篇“MySQL事务实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL事务实例分析”文章吧。MySQL 事务主...
    99+
    2023-06-28
  • Mysql事务特性和级别原理解析
    一、什么是事务? 数据库事务(简称:事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。 二、事务的四大属性 分别是原子性、一致性、隔离性、持久性。 1、原子性(Atomicity) ...
    99+
    2022-05-19
    Mysql 事务特性 级别
  • MySQL数据库本地事务原理解析
    在经典的数据库理论里,本地事务具备四大特征: 原子性 事务中的所有操作都是以原子的方式执行的,要么全部成功,要么全部失败; 一致性 事务执行前后,所有的数据都应该处于一致性状态---...
    99+
    2024-04-02
  • mysql事务详解
    事务的特性(Atomicity) 原子性 -- 回滚日志 一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这...
    99+
    2016-12-01
    mysql事务详解 数据库入门 数据库基础教程 数据库 mysql
  • mysql事务知识点分析
    这篇文章主要讲解了“mysql事务知识点分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql事务知识点分析”吧!1.  事务1.1.&n...
    99+
    2024-04-02
  • MySQL事务的示例分析
    这篇文章将为大家详细讲解有关MySQL事务的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。ACID 特性事务处理是一种对必须整批执行的 MySQL 操作的管理机制...
    99+
    2024-04-02
  • mysql与事务、恢复相关的参数解析
    崩溃恢复相关参数解析: innodb_fast_shutdown: innodb_fast_shutdown = 0:这个表示在MySQL关闭的时候,执行slow shutdown,不但包括日志的刷盘,数据页的刷盘,还包括数据的清理(pu...
    99+
    2015-12-10
    mysql与事务 恢复相关的参数解析
  • Mysql事务隔离级别原理实例解析
    引言 大家在面试中一定碰到过 说说事务的隔离级别吧? 老实说,事务隔离级别这个问题,无论是校招还是社招,面试官都爱问!然而目前网上很多文章,说句实在话啊,我看了后我都怀疑作者弄懂没!因为他们对可重复读(Repeata...
    99+
    2022-05-29
    Mysql 事务 隔离 级别
  • Spring事务原理解析
    目录前言问题描述代码复现排查1. 锁失效2. 事务隔离级别3. 修改Spring事务传播配置解决方案前言 最近在编写公司APP产品的商品砍价功能,其中有一个接口涉及并发访问。自测时通...
    99+
    2022-12-20
    Spring事务管理机制 Spring事务管理方式 Spring事务底层
  • MySQL-长事务详解
    前言:  『入门MySQL』系列文章已经完结,今后我的文章还是会以MySQL为主,主要记录下近期工作及学习遇到的场景或者自己的感悟想法,可能后续的文章不是那么连贯,但还是希望大家多多支持。言归正传,本篇文章...
    99+
    2024-04-02
  • [MySQL]事务ACID详解
    专栏简介 :MySql数据库从入门到进阶. 题目来源:leetcode,牛客,剑指offer. 创作目标:记录学习MySql学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现...
    99+
    2023-09-01
    mysql 数据库 java
  • MySQL的事务详解
    ✨博客主页: 荣 ✨系列专栏: MySQL ✨一句短话: 难在坚持,贵在坚持,成在坚持! 文章目录 一. 事务的业务场景二. 事务的使用三. 事务的特性(ACID)1. 原子性(Atomicity)2. 一致性(Consistenc...
    99+
    2023-08-17
    mysql 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作