首页 > 数据库 >MySQL——事务

MySQL——事务

时间:2023-09-15 22:33:43浏览次数:35  
标签:事务 加锁 隔离 -- 提交 MySQL 操作

是什么

必须被原子地执行的一个或多个数据库操作的集合,事务用于保证数据的一致性。如:转账就要用事务来处理,用以保证数据的一致性。

当执行事务操作时,mysql会在表上加锁,防止其他操作对表进行修改。

事务的特性ACID

原子性Atomicity

一致性Consistency

隔离性Isolation

持久性Durability

事务操作

-- 开始事务
START TRANSACTION
-- 设置保存点
SAVEPOINT a
-- dml操作
SAVEPOINT b
-- dml操作
ROLLBACK TO b
-- 回退全部事务
ROLLBACK
-- 确认事务变化、结束事务、删除保存点、释放锁
COMMIT

使用commit语句结束事务后,其他连接将可以查看到事务变化后的新数据。(隔离级别)

细节:

1、不开启事务,DML操作是自动提交的,不能回滚。

2、开启事务,没有创建保存点,执行rollback直接回退到事务开始的状态。

3、mysql的事务机制需要InnoDB的存储引擎才可以使用,MyISAM不好使。

4、开始一个事务start transaction或set autocommit=off。

隔离级别

事务隔离,保证各个连接在获取数据时的准确性。

加锁,发现有事务在操作同一数据表,则当前事务的SQL语句执行会卡住等待。

脏读

一个事务读取另一个事务尚未提交的增删改过的数据。

不可重复读

事务在操作过程中进行两次查询,由于另外一个事务对该行数据进行了修改或删除并提交,得到了不同的结果。

幻读

事务在操作过程中进行两次查询,由于另外一个事务提交了插入操作,得到了不同的结果。

标签:事务,加锁,隔离,--,提交,MySQL,操作
From: https://www.cnblogs.com/fallorange/p/17706053.html

相关文章

  • MySQL——存储引擎
    mysql表类型和存储引擎开发中需要根据需求选择存储引擎。MySQL的表类型由存储引擎决定,常用的包括MylSAM、InnoDB、Memory等。这六种又分为两类,一类是“事务安全型”(transaction-safe),比如:InnoDB;其余都属于第二类,称为”非事务安全型”(non-transaction-safe),比如mysiam和memory。......
  • Elasticsearch倒排索引 与Mysql的区别
    Elasticsearch实现快速搜索功能的核心概念,从文件的内容查找,得到包含这些内容的文件列表,再得到文件对应的信息,将文档的内容通过算法进行分词,得到一个词条列表将词条列表当作key,包含该词条的文档id列表作为值,形成一张表词条是唯一的,所以给词条创建索引,提高搜索效率通过词条查询,......
  • mysql
    MySql1.数据库基础1.1常见的数据模型(1)层次模型:用树状结构表示实体类型及实体间联系的数据模型称为层次模型(2)网状模型:用有向图结构表示实体类型及实体间联系的数据模型称为网状模型(3)关系模型:以二维表来描述数据。关系模型中,每个表有多个字段列和记录行,每个字段列有固定的属性(......
  • MySQL中exists和in的区别
    https://blog.csdn.net/m0_50370837/article/details/124239171?ops_request_misc=&request_id=&biz_id=102&utm_term=mysql%20IN%20%E5%92%8CEXISTS%20%E7%9A%84%E5%8C%BA%E5%88%AB&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb......
  • Kubernetes部署MySQL5.7单机---NFS存储
    实验目的:将MySQL5.7使用nfs持久化存储部署到Kubernetes集群中复制nfs存储地址:nfs.myit.icu复制nfs存储配置:临时测试---100G安装nfsyuminstall-ynfs-utilsrpcbind创建nfs存储目录[root@nfs~]#mkdir/data/nfsData-p格式化磁盘[root@nfs~]#mkfs.ext4/dev......
  • 基于k8s的statefulset+pv安装mysql5.7主从集群
    前提假设:1.已安装k8s环境;2.因为我使用nfs作为pv存储介质,所以需要预先配置好nfs服务nfs安装可参考:https://blog.csdn.net/wudinaniya/article/details/81068518 步骤:1.规划mysql持久化文件在nfs中的存储路径;2.创建mysqlpv;3.创建mysql configmap;4.创建mysql service;5.......
  • MySQL面试题全解析:准备面试所需的关键知识点和实战经验
    MySQL有哪几种数据存储引擎?有什么区别?MySQL支持多种数据存储引擎,其中最常见的是MyISAM和InnoDB引擎。可以通过使用"showengines"命令查看MySQL支持的存储引擎。存储方式:MyISAM引擎将数据和索引分别存储在两个不同的文件中,一个是.MYD文件用于存储数据,一个是.MYI文件用于存储索引......
  • MySQL实战实战系列 01 基础架构:一条SQL查询语句是如何执行的?
    这是专栏的第一篇文章,我想来跟你聊聊MySQL的基础架构。我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于MySQL的学习也是这样。平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个ID......
  • CentOS 7.6安装MySQL8
    下载yum源yuminstall-ywgetwgethttps://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm安装yum源rpm-ivhmysql80-community-release-el7-5.noarch.rpm安装MySQLyuminstall-ymysql-server启动mysql服务systemctlstartmysqld查看......
  • MySQL实战实战系列 00 开篇词 这一次,让我们一起来搞懂MySQL
    你好,我是林晓斌,网名“丁奇”,欢迎加入我的专栏,和我一起开始MySQL学习之旅。我曾先后在百度和阿里任职,从事MySQL数据库方面的工作,一步步地从一个数据库小白成为MySQL内核开发人员。回想起来,从我第一次带着疑问翻MySQL的源码查到答案至今,已经有十个年头了。在这个过程中,......