数据库的表锁和行锁 | mysql 技术论坛-380玩彩网官网入口

  • innodb存储引擎

    • 隐式加锁

      当对数据库增删改的时候,会检测字段有没有索引,如果有索引,那就加行锁,反之加表锁

    • 显示加锁

      • 写锁

        在正常的查询语句后面加上for update 其他用户对这行可以查,不可以写

      • 读锁

        在正常的查询语句后面加上lock in share mode

      • 意向锁

        是innodb自动加的,不需要用户干预

      • 间隙锁

        是对键值在条件范围内却并不存在的记录加锁,就叫间隙锁

      比如:user表里有id为1,3,4,5四条数据,查询语句是where id > 5 for update,另一个用户同时插入一条新的记录就不行,它会把id大于5以后但是不存在的数据给锁上(6,7,8 . . . )

  • myisam存储引擎

    • 隐式加锁

      • 在查询操作的时候,自动加上读锁。读锁就是允许其他用户对这个表的读操作,但是会阻止写操作

      • 在增删改操作的时候,自动加上写锁。写锁就是拒绝其他用户对这个表的读、写操作

    • 显式加锁

      look tables 表名 read | write

      支持并发时插入:look tables 表名 read | write local

本作品采用《cc 协议》,转载必须注明作者和本文链接
emin
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
网站地图