对于MySQL你必须要了解的锁知识
我们假设有2个事宜A和事宜B,事宜获取到了共享锁,锁住了表中的某一行,这一行只能读,不能写,此刻事宜B要申请整个表的写锁。假如事宜B申请乐成,那么必定是可以对表中全部的行举办写操纵的,那么必定与A获取的行锁斗嘴。数据库为了停止这种斗嘴,就会举办斗嘴检测,那么怎样去检测呢?有两种方法:
判定表中的每一行必要遍历全部记录,服从太差,以是数据库就用第一种方法去做斗嘴检测,也就是用到了意向锁。 总结 本文首要从MySQL的加锁范畴来说明白MySQL的锁,MySQL按照加锁范畴可以分为全局锁、表锁、行锁。全局锁和表锁是MySQL本身实现,行锁都是由引擎层面去实现。InnoDB下的行锁首要分为共享锁和排他锁。共享锁哀求后,行只能读,共享锁之间不互斥。排他锁获取后能更新和删除行,排他锁与其他锁都互斥。最后我在行锁的基本上提到了意向锁,意向锁首要暗示正在锁住行可能即将锁住行,为了在锁斗嘴检测中进步服从。虽然InnoDB下尚有其他锁,好比间隙锁,记录锁,Next-Key锁等,这些都不在本文的切磋范畴之内,若有乐趣的同窗可以自行研究。 【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |