mysql 高级面试题

1.mysql 中有几种锁?

以 mysql 中 innodb 存储引擎为例。总体来说 innodb 共有七种类型的锁:

  1. 自增锁
  2. 共享锁/排它锁
  3. 意向锁
  4. 插入意向锁
  5. 记录锁
  6. 间隙锁
  7. 临键锁

自增锁:表级别,专门针对事务插入自增id的列,如果插入位置冲突,多个事务会阻塞,以保证一致性。
共享/排他锁:行级锁,也是一个强锁。
意向锁:表级别,弱锁,仅仅表明意向。
插入意向锁:针对inser的,如果插入位置不冲突,多个事务不会阻塞,以提高插入并发。
记录锁:索引记录上加锁,对索引记录实施互斥,以保证数据一致性。
间隙锁:封锁索引记录中间的间隙,在RR下有效。防止间隔中被其他事务插入。
林键锁:封锁索引记录,以及索引记录中间额间隙,在RR下有效,防止幻读。

2.mysql 的隔离级别?

mysql 中一共有四中隔离级别:

  1. 读未提交
    在该隔离级别中,所有事务都可以看到其他未提交事务的执行结果。
    该隔离级别会出现的问题是:脏读,即读取到了未提交的数据。

  2. 读取提交
    一个事务只能看见已经提交事务所做的改变。
    该隔离级别会出现的问题是:不可重复读,即不可重复读意味着我们在同一个事务中执行完全相同的select语句时可能看到不一样的结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值