MySQL面试题汇总

本文面试题题目均来自外面付费面试题,在此基础上做修改并加入了自己的理解,以确保通俗易懂,事情较多更新会很慢,对于着急面试的同学建议建议支持正版,或者需要简历项目需要可以私我Redis面试题汇总-优快云博客

1.mysql事务的四大特性

  1. 原子性:事务中的操作要么同时成功,要么同时失败,事务是最小的分割单元,任何失败都会引起事务回滚
  2. 一致性:一致性在确保事务完成后,数据从一个一致性状态转到另外一个一致状态,事务开始前后,数据库的完整性没有被破坏
  3. 隔离性:事物之间相互隔离,事务之间的操作互相不可见,直到事务提交
  4. 持久性:事务一旦提交,其结果是永久的,即使系统发生故障,数据也不会丢失

2.事务的隔离级别

  1. 读未提交:一个事务可以读取到另外一个未提交事务的数据,会导致脏读现象
  2. 读已提交:一个事务只能读取已经提交事务的数据,但是会出现不可重复读现象
  3. 可重复读:一个事务在整个过程中,多次读取同一个数据时,结果是相同的,但是会出现幻读现象
  4. 串行化:解决了所有问题,代价是并发度大大降低

2-1.脏读,幻读,不可重复读的区别

  1. 脏读:读取到了别的事务尚未提交的数据,如果别的事务回滚或者修改,就会导致读取到的数据是脏数据
  2. 不可重复读:读取的数据,可能会被别的事务修改,造成第二次读取与第一次读取的数据不同
  3. 幻读:一个事务在读取某个范围数据的时候,这是如果有别的事务插入一行数据,就会导致出现幻读现象

2-2.MVCC是怎么解决脏读,幻读,不可重复读的问题的

MVCC主要是通过ReadView来解决脏读问题的

每开启一个事务,该事务就会获取一个事务id,这个事务id是自增的,通过这个我们就可以盘断事务的时间顺序

  • creator_trx_id 当前事务id
  • low_limit_id 下一个事务id
  • up_limit_id 未提交事务最小事务id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值