MySQL——事务


一、事务的开始与结束

一个数据库事务由一条或多条sql语句构成,它们形成一个逻辑的工作单元。这些sql语句要么全部执行成功,要么全部执行失败。 

1.1.事物的开始

1.对于DDL(create,alter,drop)和DCL(grant,revoke)事务,在执行每条语句之前和之后,MYSQL会自动执行一条commit语句,因此事物是自动开始和结束的

2.对于DML事物,需要发出start transaction语句

1.2.事物的结束

1.commit语句
成功提交,事务所作的全部工作被永久地保存在磁盘上

2.rollback语句
失败回滚,事务所做的全部工作被撤销,表中的数据不受事物操作的影响

3.savepoint
保存点命令,用来在事物中做一个标记,专门提供给rollback to语句使用

4.rollback to savepoint
回滚到保存点,专门用来撤销事物所做的部分工作

二、事务的ACID特性

事务机制可以确保数据一致性:

1.原子性(atomicity)
一个事务是一个不可分割的工作单位,事务中包括的各种操作要么都做,要么都不做

2.一致性(consistency)
事务必须是使数据库从一个一致性状态变到另一个一致性状态,一致性与原子性密切相关

3.隔离性(isolation)
一个事务的执行不能被其他事务所干扰,一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能相互干扰

4.持久性(永久性)(durability)
一个事务一旦提交,它对数据库中数据的改变是永久性的,接下来的其他操作或故障不会对其产生任何影响

三、并发事务的四个过程

当有多个事务同时运行时,可能存在以下4个问题:

1.脏读
一个事物读到了另一个事物未提交的数据

2.不可重复读
在同一个事务中,同样的条件,你读取过的数据再次读取出来时发现值不一样(修改)

3.幻读
在同一个事物中,同样的条件,第1次和第2次读出来的记录数不一样(新增/删除)

4.丢失更新
一个事物的修改覆盖了另一个事务所作的修改

四、解决并发问题的4个隔离级别

1.读未提交
2.读已提交
3.可重复读(默认)
4.可串行化

哪些操作会产生事务?

DDL和DCL不受autocommit这个变量的影响,MySQL会自动执行commit操作,不受操作者的控制,自动完成。DML受操作人员的控制

start  transaction 后去操作表的时候,加的是表锁

python操作MySQL

pymysql库

参考: 

https://www.cnblogs.com/WQ577098649/p/12051243.html 

https://www.runoob.com/python3/python3-mysql.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/103555.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件生命周期及流程【软件测试】

软件的生命周期 软件生命周期是软件开始研制到最终被废弃不用所经历的各个阶段。 瀑布型生命周期模型 规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落,具有顺序性和依赖性。每个阶段规定文档并需进行评审。 特点&#xff…

paddlespeech on centos7

概述 paddlespeech是百度飞桨平台的开源工具包,主要用于语音和音频的分析处理,其中包含多个可选模型,提供语音识别、语音合成、说话人验证、关键词识别、音频分类和语音翻译等功能。 paddlespeech整体是比较简单易用的,但是安装…

Visual Studio 2019下使用C++与Python进行混合编程——环境配置与C++调用Python API接口

前言 在vs2019下使用C与Python进行混合编程,在根源上讲,Python 本身就是一个C库,那么这里使用其中最简单的一种方法是把Python的C API来嵌入C项目中,来实现混合编程。当前的环境是,win10,IDE是vs2019,python版本是3.9&#xff0c…

【刷题篇】贪心算法

文章目录 分割平衡字符串买卖股票的最佳时机Ⅱ跳跃游戏钱币找零 分割平衡字符串 class Solution { public:int balancedStringSplit(string s) {int lens.size();int cnt0;int balance0;for(int i0;i<len;i){if(s[i]R){balance--;}else{balance;}if(balance0){cnt;}}return …

通过curl命令分析http接口请求各阶段的耗时等

目录 一、介绍二、功能1、-v 输出请求 响应头状态码 响应文本等信息2、-x 测试代理ip是否能在该网站使用3、-w 额外输出查看接口请求响应的消耗时间4、-o 将响应结果存储到文件里面5、-X post请求测试 (没测成功用的不多) 一、介绍 Curl是一个用于发送和接收请求的命令行工具和…

Python实现机器学习(上)— 基础知识介绍及环境部署

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。本门课程将介绍人工智能相关概念&#xff0c;重点讲解机器学习原理机器基本算法&#xff08;监督学习及非监督学习&#xff09;。使用python&#xff0c;结合sklearn、jupyter-notebook进行编程&#xff0c;介绍iris、匹马…

使用Android原生制作毛玻璃效果图片

毛玻璃效果&#xff0c;也被称为模糊效果&#xff0c;是许多现代应用中流行的一种视觉效果。在 Android 中&#xff0c;我们可以通过多种方式实现该效果。本文将探讨如何使用 Android 原生的 Bitmap 类和 RenderScript 来实现毛玻璃效果。 1. 准备工作 首先&#xff0c;你需要…

中国有多少个省?【最新】

2023.09.09 中华人民共和国省级行政区是指中国现行的34个一级行政区&#xff0c; 包括23个省&#xff08;河北、山西、黑龙江、吉林、辽宁、江苏、浙江、安徽、福建、江西、山东、河南、湖北、湖南、广东、海南、四川、贵州、云南、陕西、甘肃、青海、台湾&#xff09;、 5个…

2023数学建模国赛B题完整论文来啦!(含一二问求解代码及三四问仿真模拟代码)

大家好呀&#xff0c;从昨天发布赛题一直到现在&#xff0c;总算完成了全国大学生数学建模竞赛B题完整的成品论文。 本论文可以保证原创&#xff0c;保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 说实话团队通宵一直到现在做…

如何查看APK的MD5签名及无法显示MD5签名的解决办法

https://blog.asroads.com/post/3358e0c4.html 之前的文章内已经介绍了不少的关于Android环境下出Apk 包遇到的各种填坑操作&#xff0c;以及一些设置小技巧&#xff0c;但坑是未知的&#xff0c;今天又踩一个坑&#xff0c;这次的问题是和电脑环境有关的。于是下面记录一下。 …

Arthas 排查JVM问题总结

一、安装 在Arthas官网&#xff1a;https://arthas.aliyun.com/中下载安装包。 执行java -jar arthas-boot.jar就可以启动。 二、常见命令 dashboard&#xff1a;查看JVM全局概览&#xff0c;包括线程、堆内存、GC还有系统信息等 thread&#xff1a;常见命令&#xff0c;查看…

原生JavaScript+PHP多图上传实现

摘要 很多场景下需要选择多张图片上传&#xff0c;或者是批量上传以提高效率&#xff0c;多图上传的需求自然就比较多了&#xff0c;本文使用最简单的XMLHttpRequest异步上传图片。 界面 上传示例 代码 index.html <!DOCTYPE html> <html><head><titl…