03-MySQL事务

03-MySQL事务

数据库事务

1、事务特性

1.1、原子性

  • 即不可分割性,事务要么全部被执行,要么就全部不被执行

1.2、一致性

  • 事务的执行使得数据库从一种正确状态转换成另一种正确状态

1.3、隔离性

  • 在事务正确提交之前,不允许把该事务对数据的任何改变提供给任何其他事务

1.4、持久性

  • 事务正确提交后,其结果将永久保存在数据库中,即使在事务提交后有了其他故障,事务的处理结果也会得到保存

2、隔离级别

2.1、读未提交

  • 在该隔离级别,所有的事务都可以读取到别的事务中未提交的数据,会产生脏读问题,在项目中基本不怎么用,安全性太差

2.2、读已提交

  • 这是大多数数据库默认的隔离级别,但是不是MySQL的默认隔离级别
  • 这个隔离级别满足了简单的隔离要求,即 一个事务只能看见已经提交事务所做的改变,所以会避免脏读问题
  • 由于一个事务可以看到别的事务已经提交的数据,于是随之而来产生了不可重复读和虚读等问题

2.3、可重复读

  • 这是MySQL的默认隔离级别, 它确保了一个事务中多个实例在并发读取数据的时候会读取到一样的数据
  • 不过理论上,这回导致另一个棘手的问题: 幻读(Phantom Read),简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现又新的”幻影”行。InnoDB和Falcon存储引擎通过多版本并发控制(MVCC, Multiversion Concurrency Control)机制解决了该问题

2.4、可串行化

  • 事务的最高级别,它通过强制事务排序,使之不可能相互冲突,从而解决幻读问题。简言之,它是再每个读的数据行上加上共享锁。在这个级别,可能导致大量的超时现象和锁竞争,一般为了提升程序的吞吐量不会采用这个

posted @
2022-09-17 03:58 OnlyOnYourself-Lzw

阅读(
12

) 评论(
) 编辑

Original: https://www.cnblogs.com/OnlyOnYourself-lzw/p/16701801.html
Author: OnlyOnYourself-Lzw
Title: 03-MySQL事务

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

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

(0)

大家都在看

  • Jenkins权限配置

    Jenkins权限配置 需要的插件 一、添加用户 二、修改配置 三、管理添加角色 添加全局查看角色 给全局角色添加用户(Anonymous-任何人) 添加角色(全局,项目) 检查项…

    数据库 2023年6月11日
    070
  • MYSQL(进阶篇)——一篇文章带你深入掌握MYSQL

    MYSQL(进阶篇)——一篇文章带你深入掌握MYSQL 我们在上篇文章中已经学习了MYSQL的基本语法和概念 在这篇文章中我们将讲解底层结构和一些新的语法帮助你更好的运用MYSQL…

    数据库 2023年5月24日
    084
  • 使用REST风格完成MVC前后端分离

    一个具有REST风格项目的基本特征: 使用REST框架实现前后端分离架构,我们需要首先确定返回的JSON响应结构是统一的,也就是说,每个REST请求将返回相同结构的JSON响应结构…

    数据库 2023年6月11日
    0101
  • git拉项目出现的小问题

    问题描述 在IDEA中拉代码事报错。 点击查看报错信息 error: unable to read askpass response from ‘C:\Users\&#x9…

    数据库 2023年6月11日
    097
  • StoneDB 读、写操作的执行过程

    背景介绍 StoneDB 是一款兼容 MySQL 的开源 HTAP 数据库。StoneDB 的整体架构分为三层,分别是应用层、服务层和存储引擎层。应用层主要负责客户端的连接管理和权…

    数据库 2023年5月24日
    075
  • 9 &和&&的区别

    &运算符有两种用法 在解释按位与&之前,我们先了解一个知识:程序中的所有数在计算机内存中都是以二进制的形式存储的,位运算就是直接对内存中整数的二进制位进行操作。 按…

    数据库 2023年6月6日
    0108
  • Linux–>组管理和权限管理

    在Linux中的每一个用户必须属于一个组,不能独立于组外。 在Linux中每个文件有, 所有者, 所在组, 其他组的概念 查看文件的所有者 ls -ahl 举例: 改变文件所有者 …

    数据库 2023年6月14日
    0126
  • MySQL实战45讲 14

    14 | count(*)这么慢,我该怎么办? 在开发系统的时候,你可能经常需要 计算一个表的行数,比如一个交易系统的所有变更记录总数。 随着系统中记录数越来越多,select c…

    数据库 2023年6月16日
    086
  • JWT简介

    JWT简介 在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证。我们不再使用Session认证机制,而使用Json Web Token认证机制。 (1) 什…

    数据库 2023年6月14日
    094
  • day03-3私聊功能

    多用户即时通讯系统03 4.编码实现02 4.4功能实现-私聊功能实现 4.4.1思路分析 客户端 – 发送者: 用户在控制台输入信息,客户端接收内容 将消息构建成Me…

    数据库 2023年6月11日
    058
  • SQLZOO练习三–SELECT within SELECT Tutorial

    This tutorial looks at how we can use SELECT statements within SELECT statements to perfor…

    数据库 2023年6月16日
    048
  • 项目要实现多数据源动态切换,咋搞?

    文章首发于公众号:BiggerBoy 原名:编程大道 在做项目的时候,几乎都会用到数据库,很多时候就只连一个数据库,但是有时候我们需要一个项目操作多个数据库,不同的业务功能产生的数…

    数据库 2023年6月11日
    0103
  • buuctf 派大星的烦恼

    题目如下 首先找到伤疤并提取出来,发现一共有256个数据,根据题目中的提示答案为32位的字符串,再根据伤疤只有两种状态22和44,联想到每8个伤疤拼成8位二进制,22表示0,44表…

    数据库 2023年6月11日
    0136
  • Hadoop生态二—Hadoop资源管理调度平台Yarn

    Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而mapreduce等运算程序则相当于运行于操作系统之上的应用程序Yarn是一个资源调…

    数据库 2023年6月6日
    0105
  • MySQL之事务隔离级别和MVCC

    事务隔离级别 事务并发可能出现的问题 脏写 事务之间对增删改互相影响 脏读 事务之间读取其他未提交事务的数据 不可重复读 一个事务在多次执行一个select读到的数据前后不相同。因…

    数据库 2023年5月24日
    070
  • 数据库原理三—MySQL数据库优化

    MySQL优化 MySQL优化分为以下几个大类: 数据库调优在一般情况下都是SQL调优,那么,应该如何进行SQL调优呢? id select_type description 1 …

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