专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

MySQL锁机制知识点 mysql锁有几种方式

ins518 2024-11-14 16:41:53 技术文章 9 ℃ 0 评论

开发多用户、数据库驱动的应用时,最大的一个难点是:一方面要最大程度地利用数据库的并发访问,另外一方面还要确保每个用户能以一致的方式读取和修改数据。为此就有了锁( locking)的机制,同时这也是数据库系统区别于文件系统的一个关键特性。 INNODB存储引擎较之 MYSQL数据库的其他存储引擎在这方面技高一筹,其实现方式非常类似于 Oracle数据库。而只有正确了解这些锁的内部机制才能充分发挥 INNODB存储引擎在锁方面的优势。

锁的类型

按粒度分类

  • 行级锁
  • 表级锁

乐观锁与悲观锁

锁带来的问题

  1. 脏读
  2. 不可重复读
  3. 丢失更新

锁的算法

  1. Record Lock-单个记录上的锁
  2. Gap Lock-间隙锁,锁范围
  3. Next-Key Lock-Record Lock + Gap Lock,锁范围并且锁住记录本身

阻塞

锁之间不兼容,一个事务的锁等待另一个事务的锁释放占用的资源

死锁

两个人相互等待

死锁的解决办法

  • 超时后对事务进行回滚,缺点是undo log多
  • wait-for graph等待图,主动死锁检测,回滚undo量较小的事务

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表