mysql事务特性-隔离级别

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: mysql事务特性-隔离级别

事务特性:ACID


Atomicity:原子性,要么全部成功要么全部失败

Consistency:一致性,操作的数据及状态改变是一致的

Isolation:隔离性,提交事物前数据对其他事物不可见

Durability:持久性,事物对数据的修改永久保存


事务隔离级别:


基础设置


查看Mysql数据库隔离级别:


show global variables like '%isolation%';


Mysql全局隔离级别:


未提交读: SET global TRANSACTION ISOLATION LEVEL read uncommitted;


提交读: SET global TRANSACTION ISOLATION LEVEL read committed;


可重复读: SET global TRANSACTION ISOLATION LEVEL repeatable read;


串行化: SET global TRANSACTION ISOLATION LEVEL serializable;


read uncommitted:未提交读


read uncommitted:未提交读,事物未提交对其他事务数据可见 【脏读】


read committed:提交读


read committed:提交读,A事务执行更新;B事务查询;A事务又执行更新;

B事务再次查询时,前后两次数据不一致 【不可重复读】


repeatable read:可重复读


read committed:可重复读,在一个事务中多次读取同样的数据结果是一样的,即使在多次查询之间有新增的数据满足该查询,这些新增的记录也会被忽略。 【幻读问题】


serializable:串行化


serializable:串行化,最高隔离级别,强制事物解决所有问题,写的时候不能读 【性能低】


Spring事物隔离级别


枚举:Isolation

DEFAULT(-1),

READ_UNCOMMITTED(1),

READ_COMMITTED(2),

REPEATABLE_READ(4),

SERIALIZABLE(8);

基本上和数据库隔离级别一一对应,DEFAULT :这是默认值,表示使用底层数据库的隔离级别。


Spring事物传播属性


所谓事务的传播行为是指,如果在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行行为。枚举:Propagation

REQUIRED(0),

如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。

SUPPORTS(1),

如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续运行。

MANDATORY(2),

如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。

REQUIRES_NEW(3),

创建一个新的事务,如果当前存在事务,则把当前事务挂起。

NOT_SUPPORTED(4),

以非事务方式运行,如果当前存在事务,则把当前事务挂起。

NEVER(5),

以非事务方式运行,如果当前存在事务,则抛出异常。

NESTED(6);

如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行;如果当前没有事务,则该取值等价于 REQUIRED 。  

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
SQL 存储 关系型数据库
MySQL----事务
MySQL----事务
11 3
|
3天前
|
关系型数据库 MySQL 测试技术
深入探索MySQL 8:隐藏索引与降序索引的新特性
深入探索MySQL 8:隐藏索引与降序索引的新特性
|
4天前
|
关系型数据库 MySQL
|
3天前
|
SQL 关系型数据库 MySQL
|
3天前
|
存储 关系型数据库 MySQL
深入解析MySQL 8:事务数据字典的变革
深入解析MySQL 8:事务数据字典的变革
|
4天前
|
SQL 存储 关系型数据库
Mysql-事务-锁-索引-sql优化-隔离级别
Mysql-事务-锁-索引-sql优化-隔离级别
|
4天前
|
存储 关系型数据库 MySQL
mysql的InnoDB引擎实现ACID特性的原理
mysql的InnoDB引擎实现ACID特性的原理
|
4天前
|
SQL 缓存 关系型数据库
MySQL操作全攻略:库、表、数据、事务全面指南
MySQL操作全攻略:库、表、数据、事务全面指南
|
3天前
|
存储 关系型数据库 MySQL
|
2天前
|
存储 关系型数据库 MySQL