• 行锁简介


    MySQL一般使用的是InnoDB存储引擎。InnoDB和MyISAM有两个本质区别:InnoDB支持行锁、事务。表锁是默认的,即使InnoDB不走索引,加的表锁是自动挡。InnoDB比较重要的一个特性就是支持行锁。InnoDB提供了两种类型的行锁:

    • 共享锁(S锁):允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁。S锁也叫读锁,它是共享的,多个用户可以同时读同一个资源,但不允许其他客户修改。
    • 排他锁(X锁):允许获得排他锁的事务更新数据,阻止其他事务取得相同数据集的共享读锁和排他写锁。X锁也叫做写锁,写锁是排他的,写锁会阻塞其他的写锁和读锁。

    为了允许行锁和表锁共存,实现多粒度锁机制,InnoDB还有两种内部使用的意向锁(Intention Locks),这两种意向锁都是表锁:

    • 意向共享锁(IS):事务打算给数据行加行共享锁,事务在给一个数据行加共享锁前必须先取得该表的IS锁。
    • 意向排他锁(IX):事务打算给数据行加行排他锁,事务在给一个数据行加排他锁之前必须获得该表的IX锁,意向锁是数据库隐式实现了。
    欢迎批评指正,提出问题,谢谢!
  • 相关阅读:
    sql注入漏洞详解
    HTTP1.0/1.1/2.0的区别
    http协议详解
    LRU经典算法的原理与实现
    [译转]深入理解LayoutInflater.inflate()
    Touch事件分发机制
    重要:Android绘图只Mask遮罩
    Android View学习Tips
    ViewPager学习及使用(一)
    Android 实现瀑布流的两种思路
  • 原文地址:https://www.cnblogs.com/xxeleanor/p/14369494.html
Copyright © 2020-2023  润新知