400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

MySQ数据库锁定机制是什么

本篇内容主要讲解“MySQ数据库锁定机制是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQ数据库锁定机制是什么”吧!

创新互联建站是一家专业提供可克达拉企业网站建设,专注与网站设计、做网站H5技术、小程序制作等业务。10年已为可克达拉众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

1. MySQL 锁定机制简介

各存储引擎使用三种类型锁定机制

2. MySQL 数据库

Mysql数据库中表级锁定主要是 MyISAM、Memory、CSV 等一些非事务性存储引擎,使用行级锁定主要是 InnoDB 存储引擎和 NDB Cluster 存储引擎,页级锁定主要是 BerkeleyDB 存储引擎。

3. MyISAM 表级锁定主要分为两种类型
4.  队列

Mysql种主要分 4 中队列来维护这两种锁定:两个存放当前正在锁定的读和写锁定信息,另外两个存放等待中的读写锁定西信息,如下:

5. InnoDB 的行级锁定分为四种类型
6.  InnoDB 间隙锁

InnoDB 的锁定是通过在指向数据记录的第一个索引键之前和最后一个索引键之后的空域空间标记锁定信息实现的。这种锁定方式被称为 “NEXT-KEY locking”(间隙锁)
间隙锁弱点:锁定一个范围之后,即使某些不存在的键值也会被无辜锁定,造成锁定的时候无法插入键值锁定内的任何数据。
通过索引实现锁定的方式存在其他几个较大的性能隐患:

  1. 当 Query 无法利用索引的时候,InnoDB 会放弃使用 行级锁定 而改用 表级锁定 ,造成并发性能降低;

7. MyISAM 表锁优化建议
8.  InnoDB 行锁优化建议
 9.  系统锁定争用情况查询

MySQL 内部有两组专用的状态变量记录系统内部资源争用情况。

mysql> show status like ‘table%’;

Table_locks_immediate 值大于 Table_locks_waited 5000 是比较合适的,在大就需要分析问题所在。
两个状态值都是从系统启动后开始记录,每出现一次加 1,如果这里 Table_locks_waited 状态值比较高,说明表级锁定争用严重,需进一步分析。

sql> show status like ‘innodb_row_lock%’;

5 个状态,比较重要的是 Innodb_row_lock_time_avg(等待平均时长),Innodb_row_lock_waits(等待总次数)及 Innodb_row_lock_time(等待总时长)

10. 除此之外

InnoDB除了提供以上 5 个系统状态变量外,还提供了更为丰富的即时状态信息,实现方法如下:

为什么创建 innodb_monitor 表?

创建该表就是告诉 InnoDB 我们要开始监控他的详细信息,然后 InnoDB 就会将比较详细的事务级锁定信息记录到 MySQL 的 error log 中,以便后面做进一步分析。

到此,相信大家对“MySQ数据库锁定机制是什么”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


文章标题:MySQ数据库锁定机制是什么
本文路径:http://mzwzsj.com/article/peegcd.html

其他资讯

让你的专属顾问为你服务