文章首发于我的个人博客,到个人博客体验更佳阅读哦
https://www.itqiankun.com/article/1564902005
因为下面这几个单词,可以看到几个单词的最开始就是A,C,I,D
1)原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 2)一致性(Consistency)一个事务中,事务前后数据的完整性必须保持一致。 3)隔离性(Isolation)多个事务,事务的隔离性是指多个用户并发访问数据库时,一个用户的事务不能被其它用户 的事务所干扰,多个并发事务之间数据要相互隔离。 4)持久性(Durability)持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库 发生故障也不应该对其有任何影响原子性(Atomicity):事务是不可分割的。 比较好理解,原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生
mysql里面一个sql语句默认的也是一个事务
一致性(Consistency):保证数据在事务的执行周期内,是一致的。 比如下面的数据
drop table select_student; create table select_student ( id int unsigned primary key auto_increment, stu_name varchar(20) not null default '', gender enum('male', 'female', 'secret'), class_id int unsigned, height int, money int ); insert into select_student values (11, '张无忌', 'male', 23,170,100); insert into select_student values (22, '黄蓉', 'female', 23,160,130); insert into select_student values (34, '郭襄', 'female', 23,180,200); insert into select_student values (44, '杨过', 'male', 34,160,200); insert into select_student values (45, '杨康', 'male', 23,170,180); insert into select_student values (56, '李莫愁', 'female', 34,175,120); insert into select_student values (67, '穆念慈', 'female', 12,178,300); insert into select_student values (99, '黄药师', null, 12,180,400); select * from select_student;此时张无忌是100元,李莫愁是120元 然后我执行下面的需求,我想让李莫愁给张无忌转钱,那就需要使用update语句让张无忌的money增加100,让李莫愁的money减少100,首先我开启事务
start transaction;首先是让李莫愁的moeny减少100
update select_student set money=money-100 where id=56;我通过本客户端会发现李莫愁的钱已经执行成功了,李莫愁的钱变成了20
select * from select_student;这个时候我们通过另外一个客户端,让李莫愁的数据变成减10元,但是此时我们却发现通过另外一个客户端执行下面的语句的时候,另外一个客户端却会一直闪,闪个大概一分钟就会在另外一个客户端报错了
update select_student set money=money-10 where id=56;报错信息是ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
隔离性(Isolation):事务的隔离性是指多个用户并发访问数据库时,一个用户的事务不能被其它用户的事务所干扰,多个并发事务之间数据要相互隔离。
如果不考虑隔离性,事务存在3种并发访问数据问题,也就是事务里面的脏读、不可重复读、虚度/幻读,不懂可以看这篇文章:https://blog.csdn.net/weixin_43689480/article/details/96271717
持久性(Durability):事务一旦被提交,就不可能在被回滚。 这个比较好理解,就是持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。
能看到这里的同学,就帮忙右上角点个赞吧,Thanks♪(・ω・)ノ
原文链接
大佬链接 https://www.itqiankun.com/article/1564902005