mysql中是否有锁升级的情况?
为了达到数据库的ACID特性,一旦数据并发请求上升后,锁的个数就会急剧增加,造成很大的
开销,这是可以将锁的级别从记录锁升级到页面锁,表锁,从而减少锁的个数
mysql中的锁是什么形态?
mysql中的锁有很多层次,表锁,页面锁,行锁,要加行锁,就必须要先得到表的锁,
记录所在的页面的锁,最后才能对当前的记录加锁,否则就得等待
行锁的具体形态:
索引记录锁(record lock):单个索引记录上的锁
间歇锁(gap lock):锁定一个范围,但是不包括记录本身
next-key lock:相当于record lock+gap lock,锁定一个范围,并且锁定记录本身
next-key lock的来历,mysql采用了谓词锁(predict lock)来解决幻读问题
谓词锁->key range locking->next-key locking
->previous key locking
mysql中的行锁是基于位图实现
阅读(1521) | 评论(0) | 转发(0) |