美文网首页
锁的概念

锁的概念

作者: 衰煋 | 来源:发表于2020-04-15 09:58 被阅读0次

    读写锁

    读锁:共享锁,写锁:排他锁

    一个写锁会阻塞其他的写锁和读锁

    锁粒度:

    不同的引擎支持不同的锁机制

    行锁(InnoDB)

    开销大,加锁慢,粒度小。会出现死锁,发生锁竞争概率最低,并发读最高,性能高。

    页锁(BDB)

    开销和加锁速度介于表锁和行锁之间,锁定一页数据,会出现死锁。

    表锁(MylSAM/MEMORY)

    不会出现死锁,开销最小,加锁速度最快,锁整表,粒度大。发生锁竞争概率最高。性能最差。

    什么时候要拿/写这个数据什么时候就上锁

    隔离级别----》针对的是当前session

    未提交读:事务的修改即使没有提交,其他事务也是可见的

    已提交读(Oracle默认):事务从开始到提交之前,所做的任何修改对其他事物是不可见的

    A事务开启-->查询结果1,2,3-->删除3--->提交

    B事务开启-->查询结果1,2,3-->不操作-->查询得到结果1,2

    B事务在自己的一个事务中两次查询结果不一样,受其他事务影响

    可重复读(MySQL默认):同一事务多次读取同样的记录结果是一致的

    A事务开启-->查询结果1,2,3-->删除3--->提交

    B事务开启-->查询结果1,2,3-->不操作-->查询得到结果1,2,3

    B事务在自己的一个事务中两次查询结果一样,不受其他事务影响

    序列化:事务串行执行

    相关文章

      网友评论

          本文标题:锁的概念

          本文链接:https://www.haomeiwen.com/subject/zhuqvhtx.html