• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL中行锁、页锁和表锁的简单介绍

MySQL中行锁、页锁和表锁的简单介绍

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了mysql等相关知识,希望本文的分享对您有所帮助
MySQL中按照锁的粒度可以细分为行锁、页锁、表锁。

行锁

1、行锁的锁定颗粒度在MySQL中是最细的,应用于InnoDB存储引擎,只针对操作的当前行进行加锁。并发情况下,产生锁等待的概率较低,支持较大的并发数,但开销大,加锁慢,而且会出现死锁。

2、在InnoDB中使用行锁有一个前提条件:检索数据时需要通过索引!因为InnoDB是通过给索引的索引项加锁来实现行锁的。

3、在不通过索引条件查询的时候,InnoDB会使用表锁,这在并发较大时,可能导致大量的锁冲突。此外,行锁是针对索引加锁,存在这种情况,虽然是访问的不同记录,但使用的是同一索引项,也可能会出现锁冲突。

提示:不一定使用了索引检索就一定会使用行锁,也有可能使用表锁。因为MySQL会比较不同执行计划的代价,当全表扫描比索引效率更高时,InnoDB就使用表锁。因此需要结合SQL的执行计划去分析锁冲突。

4、行锁会产生死锁,因为在行锁中,锁是逐步获得的,主要分为两步:锁住主键索引,锁住非主键索引。如:当两个事务同时执行时,一个锁住了主键索引,在等待其他索引;另一个锁住了非主键索引,在等待主键索引。这样便会发生死锁。InnoDB一般都可以检测到这种死锁,并使一个事务释放锁回退,另一个获取锁完成事务。

表锁
表锁的锁定颗粒度在MySQL中是最粗的,InnoDB、MyISAM引擎中都有应用,对当前整张表加锁。不适合高并发的场景,但开销小,加锁快,不会出现死锁,发生锁冲突的概率最大。

页锁
页锁的粒度介于行锁和表锁之间,应用于BDB引擎,并发度一般,开销和加锁速度也介于行锁和表锁之间。

以上就是MySQL中行锁、页锁和表锁的简单介绍的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-11MySQL存储毫秒数据的方法
  • 2018-12-05MySQL的复制原理和流程是什么?
  • 2018-12-05如何提高百万条的数据库查询速度
  • 2018-12-05分发服务器 系统抛出18483错误,未能连接服务器,因为''distri
  • 2017-05-11MySQL ERROR 2013 (HY000)错误解决方法
  • 2018-12-05mysql5.7安装配置方法的详解(图文)
  • 2017-05-11MySQL随机查询记录的效率测试分析
  • 2018-12-05在SQL SERVER下计算两点经纬度之间的距离
  • 2018-12-05SQL中函数 replace 的参数1的数据类型ntext无效的解决方法
  • 2018-12-05MySQL中表分区的详细介绍

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 讲述一个mysql 数据库恢复的实例
    • 如何将 JSON, Text, XML, CSV 数据文件导入 MySQL数据库中
    • mysql sql语句总结
    • C#列出局域网中可用SQL Server服务器
    • MySQL 主键与索引的联系与区别分析
    • MySQL Order By索引优化方法
    • Oracle 数据库导出(exp)导入(imp)说明
    • MySQL replace into 语句浅析(二)
    • PostgreSQL源码分析: 动态Hash
    • sqlserver-为什么我这个用left join ,join, right join效果相同?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有