mysql 锁级别说明 一
1.锁的类型
MySQL各存储引擎使用了三种类型(级别)的锁定机制:表级锁定,行级锁定和页级锁定。
锁级别 | 存储引擎 |
---|---|
表级别(table-level) | MyISAM,MEMORY,CSV |
行级别(row-level) | inndb |
页级别(page-level) | bdb |
2.锁类型说明
2.1表级锁定(table-level)
表级别的锁定是MySQL各存储引擎中最大颗粒度的锁定机制。该锁定机制最大的特点是实现逻辑非常简单,带来的系统负面影响最小。所以获取锁和释放锁的速度很快。由于表级锁一次会将整个表锁定,所以可以很好的避免困扰我们的死锁问题。
当然,锁定颗粒度大所带来最大的负面影响就是出现锁定资源争用的概率也会最高,致使并发度大打折扣。
使用表级锁定的主要是MyISAM,MEMORY,CSV等一些非事务性存储引擎。
2.2行级锁定(row-level)
行级锁定最大的特点就是锁定对象的颗粒度很小,也是目前各大数据库管理软件所实现的锁定颗粒度最小的。由于锁定颗粒度很小,所以发生锁定资源争用的概率也最小,能够给予应用程序尽可能大的并发处理能力而提高一些需要高并发应用系统的整体性能。
虽然能够在并发处理能力上面有较大的优势,但是行级锁定也因此带来了不少弊端。由于锁定资源的颗粒度很小,所以每次获取锁和释放锁需要做的事情也更多,带来的消耗自然也就更大了。此外,行级锁定也最容易发生死锁。
使用行级锁定的主要是InnoDB存储引擎。
2.3页级锁定(page-level)
页级锁定是MySQL中比较独特的一种锁定级别,在其他数据库管理软件中也并不是太常见。页级锁定的特点是锁定颗粒度介于行级锁定与表级锁之间,所以获取锁定所需要的资源开销,以及所能提供的并发处理能力也同样是介于上面二者之间。另外,页级锁定和行级锁定一样,会发生死锁。
在数据库实现资源锁定的过程中,随着锁定资源颗粒度的减小,锁定相同数据量的数据所需要消耗的内存数量是越来越多的,实现算法也会越来越复杂。不过,随着锁定资源颗粒度的减小,应用程序的访问请求遇到锁等待的可能性也会随之降低,系统整体并发度也随之提升。
使用页级锁定的主要是BerkeleyDB存储引擎。
3.MySQL这3种锁的特性可大致归纳如下:
- 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低;
- 行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高;
- 页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。
适用:从锁的角度来说,表级锁更适合于以查询为主,只有少量按索引条件更新数据的应用,如Web应用;而行级锁则更适合于有大量按索引条件并发更新少量不同数据,同时又有并发查询的应用,如一些在线事务处理(OLTP)系统。
mysql 锁级别说明 一相关推荐
- mysql锁级别_MySql三种级别锁的介绍及解锁命令
MySql三种级别锁的介绍及解锁命令 (2014-04-29 11:59:37) 标签: 那末 用以 便能 页级的典型代表引擎为BDB. 表级的典型代表引擎为MyISAM,MEMORY和很久之前的IS ...
- MySQL锁、事务隔离级别、MVCC机制详解、间隙锁、死锁等
一. 简介 1. 锁定义 锁是计算机协调多个进程或线程并发访问某一资源的机制. 在数据库中,除了传统的计算资源(如CPU.RAM.I/O等)的争用以外,数据也是一种供需要用户共享的资源.如何保证数据并 ...
- 57张图,13个实验,干死 MySQL 锁!
你好,我是yes. 前段时间写了一篇关于 MySQL 锁的文章,一些小伙伴们在阅读之后产生了一些疑问,这些问题还挺有代表性的,所以在这里做个实验,来用事实探究一番. 那篇文章提到了记录锁(Record ...
- 大厂面试官必问的Mysql锁机制
前言 前几天有粉丝和我聊到他找工作面试大厂时被问的问题,因为现在疫情期间,找工作也特别难找.他说面试的题目也比较难,都偏向于一两年的工作经验的面试题. 他说在一面的时候被问到Mysql的面试题,索引那 ...
- Mysql 锁的机制
2019独角兽企业重金招聘Python工程师标准>>> 引言 数据库锁定机制简单来说就是数据库为了保证数据的一致性而使各种共享资源在被并发访问变得有序所设计的一种规则:对于任何一种数 ...
- MySQL - 锁机制初探
文章目录 生猛干货 Pre 锁的分类 InnoDB 中的锁 行锁 InnoDB 行锁的三种算法实现 Record Lock 锁 Gap Lock 锁 Next-key Lock 锁 表锁 表锁的分类 ...
- 聊聊大厂面试官必问的 MySQL 锁机制
前言 前几天有粉丝和我聊到他找工作面试大厂时被问的问题,因为现在疫情期间,找工作也特别难找.他说面试的题目也比较难,都偏向于一两年的工作经验的面试题. 他说在一面的时候被问到Mysql的面试题,索引那 ...
- mysql锁相关讲解及其应用——《深究mysql锁》
一.mysql的锁类型 (1) 共享/排它锁(Shared and Exclusive Locks) 共享锁和排他锁是InnoDB引擎实现的标准行级别锁. 拿共享锁是为了让当前事务去读一行数据. 拿排 ...
- 一分钟深入Mysql的意向锁——《深究Mysql锁》
延伸阅读: 三分钟了解Mysql的表级锁 五分钟了解Mysql的行级锁 mysql锁相关讲解及其应用--<深究mysql锁>了解锁前,一定要先看这篇,了解什么是MVCC,如果我们学习锁,没 ...
- 五分钟了解Mysql的行级锁——《深究Mysql锁》
延伸阅读: 三分钟了解Mysql的表级锁 一分钟深入Mysql的意向锁 mysql锁相关讲解及其应用--<深究mysql锁>了解锁前,一定要先看这篇,了解什么是MVCC,如果我们学习锁,没 ...
最新文章
- Java 动态调试技术原理及实践
- 20172307 2018-2019-1 《程序设计与数据结构》实验3报告
- 使用直线标定板进行相机畸变校正,并且进行9点标定(halcon)
- Markdown--行内公式编辑
- java exception e抛异常_Java-------异常处理try{}catch(){Exception e}finally{}
- 多线程编程(7) - 从 CreateThread 说起[续五]
- Redis 6.0 源码阅读笔记(1) -- Redis 服务端启动及命令执行
- poj 2828 线段树
- ajax表单提交post(错误400) 序列化表单(post表单转换json(序列化))
- Android App 启动时立即崩溃无法debug的解决方法
- Word论文参考文献排版
- 糖豆广场舞完成C轮融资,腾讯、顺为、GGV、IDG投资...
- 禁用hiberfil.sys文件
- 互联网公司干不好上门维修?
- 17岁韩寒在CCTV《对话》舌战群吊的视频
- 奇兔recovery卡刷教程_OPPO A59s 刷入奇兔recovery及root权限刷机教程
- 2020牛客暑期多校训练营(第七场)J.Pointer Analysis
- Linux清理文件内容的四种方式
- pyqt5中显示web页面(外部web、本地web)
- R语言中的函数2:predict()
热门文章
- EMD(Exploiting Modification Direction)
- wingide python_WingIDE下载|Wingware Python WingIDE汉化中文版6.0 下载_当游网
- 城市规划设计毕业论文范文
- Redis-keys命令
- python的print函数中file_python3之print()函数
- 22.Consent 确认逻辑实现
- ETR290规范的理解
- PHPer都应该关注的服务端性能问题–听云Server试用笔记
- 计算机基础知识还有那些,关于电脑基础知识有哪些
- JavaFX+Kotlin游戏从入门到放弃:拯救蛇蛇大作战又名454行实现几何数独游戏