事务

事务

  • *事务的简介

事务是一组操作的合集,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体,一起向系统提交或撤销操作请求,这些操作只有同时成功、同时失败;

事务的操作

  • 查看、设置事务提交方式
-- 查看事务的提交方式(若为"1"则是自动提交,若为"0"则是手动提交)
select @@autocommit;
-- 设置事务为手动提交
set @@autocommit = 0;
  • 提交事务
commit;
  • 回滚事务
rollback;
  • 开启事务
start transaction;
begin;

事务的四大特性(ACID)

  • 原子性(Atomicity)事务是不可分割的最小操作单元,要么全部成功要么全部失败;
  • 一致性(Consistency)事务完成时,必须使所有的数据都保持一致的状态;
  • 隔离性(Isolation)数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行;
  • 持久性(Durability)事务一旦提交或回滚,它对数据库中的数据大的改变就是永久的;

并发事务问题

问题 描述 脏读 一个事务读到另一个事务还没有提交的数据; 不可重复读 一个事务先后读取同一条记录,但两次读取的数据不同; 幻读 一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在;

事务的隔离级别

隔离级别 脏读 不可重复读 幻读 Read uncommitted Y Y Y Read committed N Y Y Repeatable Read N N Y Serializable N N N

(注意:Repeatable Read 为MySQL的默认隔离级别;)

  • 查看事务隔离级别
select @@transaction_isolation;
  • 设置事务隔离级别
set session\global transaction isolation level 隔离级别;

*(注意:session为针对当前客户端窗口有效;global为针对所有客户端的窗口有效;)

Original: https://www.cnblogs.com/TeaTracing/p/16498053.html
Author: TeaTracing
Title: 事务

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/622511/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • mysql-事务

    1.事务(transaction)事务是业务逻辑的基本单元。 [En] A transaction is a basic unit of business logic.每一个事务由…

    数据库 2023年5月24日
    077
  • 23种设计模式之解释器模式(Interpreter)

    文章目录 概述 解释器模式的优缺点 解释器模式的结构和实现 * 模式结构 模式实现 JDK源码中的使用场景 总结 概述 解释器模式(Interpreter Pattern)提供了评…

    数据库 2023年6月6日
    0103
  • 《MySQL自传》

    撰写本文查阅了大量参考资料,也得到很多朋友的指点帮助,特别感谢: Jimmy Yang——阿里云数据库研究员,原Oracle InnoDB Architect. 彭立勋——华为云数…

    数据库 2023年6月11日
    083
  • Redis-实现分布式锁

    单节点分布式锁 本地的锁操作非常常见,无非就是申请一个锁变量lock, 加锁时,判断锁变量是否被持有,如果被持有中,则加锁失败,如果不被持有,则加锁成功,将锁的状态改为持有锁的这个…

    数据库 2023年6月11日
    066
  • Map–部分方法

    1.Map.values()方法:获取Map集合中的所有键值对象 获取 Map 集合中的所有键值对象,这些键值对象将存放在另一个集合对象中 2.getOrDefault() 方法 …

    数据库 2023年6月16日
    081
  • windows运行xcopy计划任务 结果是0x4解决方案

    近几天发现一直好好的数据备份计划任务一直返回0x4失败,直接执行bat又是正常的。 bat命令中使用的是xcopy,到处找方案没解决。 今天意外在使用另一个命令时,发现提示:网络连…

    数据库 2023年6月14日
    068
  • requests模块的使用

    安装:pip install requests get请求 1、发送 get 请求 import requests header = { ‘referer’: ‘https://w…

    数据库 2023年6月9日
    093
  • Redis学习(1)—Redis概述

    什么是NoSQL NoSQL:Not Only SQL,意思不仅仅是SQL,它是属于 非关系型数据库。那什么是关系型数据库?数据结构是一种有行有列的数据库。 NoSQL数据库是为了…

    数据库 2023年6月14日
    073
  • 力扣leetcode刷题记录1—-

    【以下题目来源均来自力扣leetcode】 World 表: 【描述】name 是这张表的主键。这张表的每一行提供:国家名称、所属大陆、面积、人口和 GDP 值。 【问题】如果一个…

    数据库 2023年6月16日
    078
  • 条件控制

    1. 顺序结构 java代码顺序执行 2. 选择结构 if语句 格式 if(结果为booblean类型的表达式){ 语句体; } if(结果为booblean类型的表达式){ 语句…

    数据库 2023年6月14日
    049
  • MySQL事务提交流程

    有binlog的CR方式(重点核心!!):有binlog情况下,commit动作开始时,会有一个Redo XID 的动作记录写到redo,然后写data到binlog,binlog…

    数据库 2023年6月16日
    083
  • springboot~用正则表达式提取bearer token

    前后一体的应用,是这样进行认证的 用户向服务端发送验证信息(用户名、密码); 服务端验证成功就向用户返回一个sessionid; 服务端保存了这个session_id对应的信息,并…

    数据库 2023年6月6日
    089
  • Mysql 的Innodb引擎和Myisam数据结构和区别

    先大体看一下MySQL的SQL layer层的一个架构流程: 简要介绍一些关键模块: [En] Give a brief description of some key modul…

    数据库 2023年5月24日
    083
  • ShardingSphere 异构迁移最佳实践:将3.5亿量级的顾客系统 RTO 减少60倍

    Apache ShardingSphere 助力当当 3.5 亿用户量级顾客系统重构,由 PHP+SQL Server 技术栈无缝转型为 Java+ShardingSphere+M…

    数据库 2023年6月16日
    0108
  • 使用Docker安装FastDFS

    1. 获取镜像 可以利用已有的FastDFS Docker镜像来运行FastDFS。 获取镜像可以通过下载: sudo docker image pull delron/fastd…

    数据库 2023年6月14日
    090
  • 翻译 | Kubernetes Operator 对数据库的重要性

    一些刚接触 Kubernetes 的公司尝试使用传统环境中运行数据库的方法在 Kubernetes 中运行数据库。但是,不建议这样做。因为这可能会导致数据丢失,并且也不建议这样管理…

    数据库 2023年5月24日
    0102
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球