数据库的表锁和行锁 | mysql 技术论坛-金年会app官方网
- 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
                                
                            
                        
                     
 
推荐文章: