JAVA面试系列-mysql

本文详细探讨了MySQL中的事务特性,包括ACID原则、事务隔离级别及其问题,以及MyISAM和InnoDB存储引擎的区别。还讨论了行锁、间隙锁和临键锁,以及并发事务处理可能导致的问题及解决方案。此外,文章分析了MySQL的事务隔离级别如何防止幻读,以及在项目中选择读已提交隔离级别的原因。
摘要由CSDN通过智能技术生成

写在文章开始部分:所有题均来自于JAVA面试

1.什么是事务?事务有哪些特性?

定义:是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合(工作逻辑单元);
事务四大特性(ACID):

事务特性 含义
原子性(atomicity) 每个事务都是一个整体,不可再拆分,事务中所有sql要么都执行成功,要么都失败
一致性(Consistency) 事务在执行前数据库的状态和执行后数据库的状态保持一致
隔离性(Isolation) 事务和事务之间应该是相互独立的,互相不产生影响
持久性(Durability) 一旦事务执行成功,对数据库的修改是持久的,就算关机也是保存下来的

事务四大隔离级别
在这里插入图片描述
事务处理的三个问题:

脏读:脏读是指在一个事务处理过程里读取了另一个未提交的事务中的数据。当一个事务正在多次修改某个数据,而在这个事务中这多次的修改都还未提交,这时一个并发的事务来访问该数据,就会造成两个事务得到的数据不一致。

不可重复读:“不可重复读”现象发生在当执行SELECT 操作时没有获得读锁或者SELECT操作执行完后马上释放了读锁;另外一个事务对数据进行了更新,读到了不同的结果。不可重复读和脏读的区别是,脏读是某一事

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值