MySQL基础教程16——事务

简介: 是一组操作和集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或者撤销操作请求,要么同时成功,要么同时失败。

MySQL基础教程16——事务


MySQL基础教程16——事务


是一组操作和集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或者撤销操作请求,要么同时成功,要么同时失败。


事务的流程


开始事务——如果有异常,回滚事务——提交事务


查看事务提交方式


select @@autocommit;


默认值为1(自动提交事务),0为手动提交事务。


修改事务的提交方式


set @@autocommit = 0/1;


手动操作


提交事务:commit;

回滚事务:rollback;


自动提交事务操作时不更改提交方式使用手动操作


start transaction/begin;


事务的四大特征


原子性


事务时不可分割的最小操作单位,要么全部成功,要么全部失败。


一致性


事务完成时,所有数据必须保持一致(例如:转账成功后两人账户的增减应该保持一致性)。


隔离性


数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行。


持久性


事务一旦提交或回滚,它对数据库中的数据改变就是永久的。


并发事务引发的问题


脏读


一个事务读到另一个事务还没有提交的数据。


事务1:select  update ...事务2

事务2:select

事务1还没提交但是数据已近进行了修改。


不可重复读


一个事务先后读取同一条记录,但是两次读取的数据不同。


事务1:select ...事务2 select

事务2:update commit


事务1第一次查询时时原值第二次查询时由于事务2已近提交导致值发生变化。


幻读


一个事务按照条件查询数据时,没有对应的数据,但是在插入数据时,又发现这行数据已经存在,好像出现了“幻影”。


事务1:select ...事务2 insert select

事务2:insert commit

事务1查询时无记录,事务2插入数据,事务1再插入时会报错(主键冲突),但是再查询时还是没记录。


解决并发事务引发的问题以及事务隔离级别


Read uncommitted(读未提交)


脏读,不可重复读,幻读都会出现。


Read committed(读已提交)


不可重复读,幻读会出现。


Repeatable Read(默认,可重复读)


幻读会出现。


serializable(可串行化)


无问题。


事务隔离级别安全性与性能


级别从上到下越来越高。数据越来越安全,性能从上到下越来越低。


查看事务的隔离级别


select @@transaction_isolation;


修改事务的隔离级别


set [session(当前会话窗口)/global(全部)] transaction isolation level [Read uncommitted/Read committed/Repeatable Read/serializable];

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
3月前
|
SQL 关系型数据库 MySQL
MySQL锁机制:并发控制与事务隔离
本文深入解析了MySQL的锁机制与事务隔离级别,涵盖锁类型、兼容性、死锁处理及性能优化策略,助你掌握高并发场景下的数据库并发控制核心技巧。
|
4月前
|
存储 监控 Oracle
MySQL事务
MySQL事务具有ACID特性,包括原子性、一致性、隔离性和持久性。其默认隔离级别为可重复读,通过MVCC和间隙锁解决幻读问题,确保事务间数据的一致性和并发性。
MySQL事务
|
5月前
|
存储 SQL 关系型数据库
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
|
3月前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
673 16
|
2月前
|
关系型数据库 MySQL 数据库
【赵渝强老师】MySQL的事务隔离级别
数据库并发访问时易引发数据不一致问题。如客户端读取到未提交的事务数据,可能导致“脏读”。MySQL通过四种事务隔离级别(读未提交、读已提交、可重复读、可序列化)控制并发行为,默认为“可重复读”,以平衡性能与数据一致性。
292 0
|
3月前
|
关系型数据库 MySQL 数据库
MySql事务以及事务的四大特性
事务是数据库操作的基本单元,具有ACID四大特性:原子性、一致性、隔离性、持久性。它确保数据的正确性与完整性。并发事务可能引发脏读、不可重复读、幻读等问题,数据库通过不同隔离级别(如读未提交、读已提交、可重复读、串行化)加以解决。MySQL默认使用可重复读级别。高隔离级别虽能更好处理并发问题,但会降低性能。
179 0
|
5月前
|
安全 关系型数据库 MySQL
mysql事务隔离级别
事务隔离级别用于解决脏读、不可重复读和幻读问题。不同级别在安全与性能间权衡,如SERIALIZABLE最安全但性能差,READ_UNCOMMITTED性能高但易导致数据不一致。了解各级别特性有助于合理选择以平衡并发性与数据一致性需求。
190 1
|
7月前
|
存储 关系型数据库 MySQL
【免费动手教程上线】阿里云RDS MySQL推出大容量高性能存储:高性能本地盘(最高16TB存储空间)、高性能云盘(最高64TB存储空间)
阿里云RDS MySQL提供高性能本地盘与高性能云盘等存储方案,满足用户大容量、低延迟需求。高性能本地盘单盘最大16TB,IO延时微秒级;高性能云盘兼容ESSD特性,支持IO性能突发、BPE及16K原子写等能力。此外,阿里云还提供免费动手体验教程,帮助用户直观感受云数据库 RDS 存储性能表现。
|
12月前
|
SQL 安全 关系型数据库
【MySQL基础篇】事务(事务操作、事务四大特性、并发事务问题、事务隔离级别)
事务是MySQL中一组不可分割的操作集合,确保所有操作要么全部成功,要么全部失败。本文利用SQL演示并总结了事务操作、事务四大特性、并发事务问题、事务隔离级别。
5017 56
【MySQL基础篇】事务(事务操作、事务四大特性、并发事务问题、事务隔离级别)

推荐镜像

更多