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/581549/

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

(0)

大家都在看

  • 解决pip下载慢

    临时使用 可以在使用pip的时候加参数 -i https://pypi.tuna.tsinghua.edu.cn/simple 设为默认 pip install pip -U -i…

    Linux 2023年6月13日
    081
  • canal-1.1.5实时同步MySQL数据到Elasticsearch

    一、环境准备 1、jdk 8+ 2、mysql 5.7+ 3、Elasticsearch 7+ 4、kibana 7+ 5、canal.adapter 1.1.5 二、部署 一、创…

    Linux 2023年6月13日
    0106
  • linux编译安装nginx

    本文升级过程,适用于大部分nginx编译版本 常用编译选项说明nginx大部分常用模块,编译时./configure –help以–without开头的都默认安装。 –prefix…

    Linux 2023年6月14日
    083
  • podman的基本用法

    podman的基本设置和使用 运行示例容器 列出正在运行的容器 检查正在运行的容器 测试 httpd 服务器 查看容器的日志 查看容器的 pid 检查点容器 恢复容器 迁移容器 停…

    Linux 2023年6月13日
    075
  • pyQt的基本使用

    1. 基本窗口 import sys from PyQt5.QtWidgets import QApplication, QWidget if __name__ == ‘__mai…

    Linux 2023年6月7日
    097
  • redis后台启动

    打开redis.conf文件 把daemonize设置为yes posted @2021-11-25 15:30 HongMaJu 阅读(73 ) 评论() 编辑 Original…

    Linux 2023年5月28日
    079
  • docker安装xxl-job-admin

    拉取镜像 docker pull xuxueli/xxl-job-admin:2.3.1 运行容器 docker run -d -e PARAMS=”–sp…

    Linux 2023年6月7日
    080
  • 聊聊Mysql主从同步读写分离配置实现

    Hi,各位热爱技术的小伙伴您们好,好久没有写点东西了,今天写点关于mysql主从同步配置的操作日志同大家一起分享。最近自己在全新搭建一个mysql主从同步读写分离数据库简单集群,我…

    Linux 2023年6月14日
    086
  • Scrapy关键词 爬虫的简单实现(以新华网和人民网为例)

    新华网爬虫(2022年6月) 1 分析网站结构 新华网网址:新华网_让新闻离你更近 (news.cn) 新华网的首页是带有关键词搜索功能的,我们尝试在搜索栏随意搜索一个关键词 可以…

    Linux 2023年6月7日
    0101
  • linux系统(centos)配置ssh免密登录

    linux系统(centos)配置ssh免密登录 背景 在日常使用时候,远程执行一些命令或脚本,交互式的输入密码有些不方便。故需配置免密登录。 用SSH命令行在A服务器上远程登录B…

    Linux 2023年6月8日
    089
  • JDK 环境变量配置

    一、环境准备 Windows10 jdk-9.0.1 二、下载合适的JDK版本,安装JDK 三、环境变量配置 1、右键桌面上”我的电脑”>>&#…

    Linux 2023年6月8日
    080
  • Docker Manager for Docker Swarm deploy

    一、Swarm概述 Swarm是Docker公司在2014年12月初发布的一套较为简单的工具,用来管理Docker集群,它将一群Docker宿主机变成一个单一的,虚拟的主机。Swa…

    Linux 2023年6月14日
    0101
  • docker安装redis

    安装镜像 docker pull redis:7.0 下载配置文件 wget http://download.redis.io/redis-stable/redis.conf 修改…

    Linux 2023年6月7日
    0118
  • 多级缓存-redis缓存预热

    冷启动:服务刚刚启动时,Redis中并没有缓存,如果所有商品数据都在第一次查询时添加缓存,可能会给数据库带来较大压力。 缓存预热:在实际开发中,我们可以利用大数据统计用户访问的热点…

    Linux 2023年5月28日
    079
  • redis高级

    1 redis高可用 主从复制存在的问题: 1 主从复制,主节点发生故障,需要做故障转移,可以手动转移:让其中一个slave变成master—>哨兵 2 主从复制,只能主…

    Linux 2023年6月14日
    085
  • Centos下使用containerd管理容器:5分钟从docker转型到containerd

    一.系统环境 二.前言 三.containerd 四.部署containerd 4.1 安装containerd 4.2 containerd配置文件 4.3 配置containe…

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