美文网首页
mysql 数据库事务

mysql 数据库事务

作者: 逍遥的石头 | 来源:发表于2023-06-17 15:19 被阅读0次

一、sql语句类型

1、DML(Data Manipulate Language):数据操作语言。对表中的数据进行增加INSERT、删除DELETE、修改UPDATE。

 2、DDL(Data Define Languge):数据定义语言。对数据库和表进行管理,例如创建、修改、删除等。

二、事务定义

事务(Transaction):一个最的不可分的工作单元,通常一个事务对应一个完整的业务。一个完整的业务需要批量DML语句共同联合完成。事务只和DML语句相关,或者说DML语句才有事务。这个和业务逻辑相关,有业务逻辑不同,DML语句的个数也不同。

三、事务的四大特性(ACID)

ACID是关系型数据库系统采纳的原则,其代表的含义分别是:

         (1) 原子性(Atomicity):原子性意味着数据库中的事务执行是作为原子,即不可再分。整个语句要么执行,要么不执行,不会有中间状态。

         (2) 一致性(Consistency): 事务在开始和结束时,应该始终满足一致性约束。比如系统要求A+B=100,那么事务如果改变了A的数值,则B的数值也要相应修改来满足这样一致性要求;

         (3) 隔离性(Isolation):如果有多个事务同时执行,彼此之间不需要知晓对方的存在,而且执行时互不影响,事务之间需要序列化执行,有时间顺序。数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时,由于交叉执行而导致数据的不一致;

         (4) 持久性(Durability):事务的持久性是指事务运行成功以后,对系统状态的更新是永久的,不会无缘无故回滚撤销。即使出现了任何事故比如断电等,事务一旦提交,则持久化保存在数据库中.

四、如何定义事务的开始和结束

START TRANSACTION 

 [transaction_characteristic [, transaction_characteristic] ...]    

 transaction_characteristic: {

    WITH CONSISTENT SNAPSHOT  

| READ WRITE  

| READ ONLY

}

BEGIN [WORK]

COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]

ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]

SET autocommit = {0 | 1}

START TRANSACTION or BEGIN :开始一个新事务

COMMIT :提交事务,将执行结果写入到数据库

ROLLBACK:回滚事务, 回滚所有已经执行成功的sql语句。

SET autocommit :设置自动提交模式。

autocommit  设置为on  为自动提交事务模式。在自动提交模式下,如果没有start transaction显式地开始一个事务,那么每个sql语句都会被当做一个事务执行提交操作。

五、事务实现底层技术和示意图

undo日志:记录数据表修改前的状态,rollback基于undo日志实现。

redo日志:记录数据表修改后的状态,commit基于redo日志实现。

相关文章

  • 数据库笔记

    数据库 数据库⭐MySQL 默认存储引擎InnoDB(事务性存储引擎)一、事务 数据库事务? 数据库事务有什么作用...

  • 事物处理

    MySQL 事务 在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。 事务处理可以...

  • MySQL锁简介

    备注:测试数据库版本为MySQL 8.0 这个blog我们来聊聊MySQL 事务 一.MySQL锁概述 数据库锁定...

  • Mysql innodb SQL语句加锁方式

    mysql innodb存储引擎支持事务,是mysql的默认存储引擎。 数据库事务 事务是由一组sql语句组成的逻...

  • MySQL数据库高级(七)——事务和锁

    MySQL数据库高级(七)——事务和锁 一、事务简介 1、事务简介 事务(Transaction) 是指作为单个逻...

  • 聊聊数据库事务

    本文主要基于Mysql数据库的InnoDB存储引擎介绍事务相关知识。 1.先来说说数据库引入事务的目的。 事务...

  • 聊聊MySQL的隔离级别

    原文:聊聊MySQL的隔离级别 | MySQL隔离级别原理参考:oracle - mysql - 数据库事务隔离级...

  • Mac系统mysql设置事务隔离级别

    Mac系统mysql设置事务隔离级别 MySQL数据库事务隔离级别主要有四种: Serializable 串行化,...

  • mysql事务详解

    数据库事务 1.1数据库版本 Mysql8.0.12 1.2事务是由一组SQL语句组成的逻辑处理单元,事务具有以下...

  • MySQL系统学习(05):事务隔离性与隔离级别

    原文:MySQL系统学习(05):事务隔离性与隔离级别 数据库事务 提到事务,大家都不陌生。在刚开始学习数据库的时...

网友评论

      本文标题:mysql 数据库事务

      本文链接:https://www.haomeiwen.com/subject/mmbdydtx.html