mysql事务与锁

MySQL事物与锁

  • InnoDB与MyISAM区别

    • MyISAM不支持事物回滚,InnoDB是支持事物
    • MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking)。
    • InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。
      • MyISAM更适合查询多的情况
      • InnoDB更适合写入多的
  • 行级锁 & 表级锁

    • 行级锁开销大,加锁慢,锁定粒度最小,发生锁冲突概率最低,并发度最高
    • 表级锁开销小,加锁快,锁定粒度大、发生锁冲突最高,并发度最低
  • 乐观锁&悲观锁

    • 乐观锁:读取商品数量时不加锁,到修改商品数量是回校验,当前商品数量和刚读取的数量是否一致,如果相同加排他锁,然后写入,否则重试
    • 悲观锁:读取商品数量时就加一把排它锁,直到修改商品数量完成释放排它锁,其他线程才能读取商品数量
  • 共享锁 & 排它锁

    • 共享锁(读锁):所有线程都可以读这个数据,但不能写
    • 排它锁(写锁)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值