数据库事务隔离性实战

阅读: 评论:0

数据库事务隔离性实战

数据库事务隔离性实战

俗话说书上得来终觉浅,在回忆数据库事务相关知识时,在事务隔离性这块总是感觉没吃透,于是决定在mysql进行实战演练以加强知识的印象。

首先,介绍下数据库事务特性,简称ACID:

Atomic 原子性,事务中所有操作是一个整体要么全部完成,要么不做操作,不会有做到一半的情况。

Consistency 一致性,事务执行成功后,操作肯定是正确执行的,例如给你账户加100块,不可能结果给你加了50块。

Isolation 隔离性,各个事务之间是独立的。

Duration 持久性,事务完成后的操作做的修改是永久

我们这里重点讨论Isolation 隔离性,理解隔离性请以数据库单个事务为单位,一个事务中可以包含查询、修改等多个操作,以下为在mysql数据库进行的操作,先来了解几个操作时使用的命令:

#获取当前数据库事务隔离级别
SELECT @@tx_isolation;
#修改当前数据库事务隔离级别
#read-uncommitted 读未提交
#read-committed 读已提交
#REPEATABLE-READ 可重复读
#SERIALIZABLE
set tx_isolation = 'read-uncommitted';#手动开启一个mysql事务,并在之后执行相关sql语句
START TRANSACTION #手动开启事务ROLLBACK #回滚COMMIT #事务提交

mysql下开两个窗口,将隔离级别设置为read-uncommitted 读未提交 ,试下事务A和事务B同时更新一条记录,到最后提交时,事务A执行成功COMMIT,但事务B执行失败进行ROLLBACK,观察回滚后记录信息。

以下为执行步骤,大家可以随便找个表试下,事务A和事务B分别在两个窗口中,并且设置了set tx_isolation = 'read_uncommitted'; 

#1.开启事务A
START TRANSACTION
#3.事务A更新用户年龄
UPDATE girl SET age = 44 WHERE id = 13;
#5.执行成功,提交
COMMIT
#2.开启事务B
START TRANSACTION
#4.事务B更新用户年龄
UPDATE girl SET age = 66 WHERE id = 13;
#6.执行失败,回滚
ROLLBACK

大家可以尝试的修改不同的隔离级别看看执行效果,便于大家对各个隔离级别的深入理解。

本文发布于:2024-01-29 17:41:36,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170652130017168.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:Github 重要性
下一篇:视觉显著性
标签:实战   事务   数据库
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23