mysql事务处理

一.抛出问题:

二. 事务:

1.本质:把多个操作,打包成一个操作完成.

2.原子性:多个操作,要么全部执行成功,要么一个都不执行(回滚).

3.回滚(rollback)机制:执行到中间出错了,自动把执行成功的操作还原到最初没有执行的样子.

实现回滚:把事务中每个执行的操作记录下来,如果要回滚,按照逆操作执行.

注意:日志会在硬盘中存在,所以数据库崩溃也不会影响回滚.

4.开启事务:start transaction.

提交事务:commit(自带回滚).

手动触发回滚:rollback.

注意:一个事务必须要以commit或者rollback结尾,否则所有操作都会认为在一个事务中..

5.(重要)事务的基本特性:

a)原子性:多个操作打包成一个整体,要么全部执行成功,要么一个都不执行(回滚).

b)一致性: 事务执行前后,数据能对上(通过约束和回滚保证).

c)持久性:数据存在硬盘上,持久化存储.

d)隔离性:并发执行事务的时候,隔离性会在执行效率和数据可靠之间做出权衡.描述了同时执行事务时,相互之间的影响.

1.特点:隔离性越高,数据越可靠,但是并发性低,性能低,隔离性越低,数据越不可靠,但是并发性高,性能高.

2.并发执行的三个问题:

a).脏读问题:读到了写事务之前的中间数据.

解决方法:对写加锁(写的时候不能读).

read committed.

b)不可重复度问题:一个事务中,多次读操作,读到的数据不一样(另一个事务在修改).

解决方法:给读加锁(读的时候不能写).

repeatable read.

c)幻读问题(不可重复度的更进一步):一个事务中,读数据的时候,突然多出来几条数据,多次读数据,值相同,结果集不同.

解决幻读问题:串行化,彻底放弃并发执行事务,所有事务都是一个挨一个执行.

serializbale.

相关推荐
feng68_1 分钟前
Ansible还原数据库节点
linux·运维·数据库·ansible
乐hh5 分钟前
清理MySQL数据
数据库·mysql
EasyCVR8 分钟前
国标GB28181/RTSP/ONVIF/RTMP视频监控平台EasyCVR视频质量诊断花屏/蓝屏/画面模糊/冻结检测
网络·数据库·音视频
C^h11 分钟前
RTthread中的内存池理解
linux·数据库·c++·算法·嵌入式
fobwebs13 分钟前
wordpress 网站安装了Yoast SEO,并且做了内容的优化后,如果想重置Yoast SEO,并且删除所有的优化内容,应该如何操作?
数据库·yoast seo·重置yoast seo·清空yoast seo内容
路由侠内网穿透30 分钟前
本地部署开源 LLM 应用观测与调试平台 Langfuse 并实现外部访问
运维·服务器·数据库·物联网·开源
SPC的存折30 分钟前
1、Ansible之Ansible安装与入门
linux·数据库·ansible
qiumingxun35 分钟前
mysql的分区表
数据库·mysql
李昊哲小课35 分钟前
aiomysql 完整实战教程
python·mysql·pymysql·aiomysql
sxhcwgcy36 分钟前
Spring Boot中集成MyBatis操作数据库详细教程
数据库·spring boot·mybatis