MySQL 行锁和表锁的区别

本文详细介绍了MySQL中的行锁和表锁,包括它们的主要区别、细分类型以及加锁方式。行锁支持InnoDB存储引擎,开销大但并发度高;表锁则适用于InnoDB和MyISAM,开销小但并发度低。表锁分为读锁和写锁,而行锁主要为共享锁和排他锁。此外,还讨论了元数据锁(MDL)和意向锁的作用。
摘要由CSDN通过智能技术生成


前言

本篇文章将对MySQL的表锁和行锁进行详细介绍,以及分析对比之间的区别,希望对大家起到参考作用。


一、MySQL 行锁和表锁最主要的区别

1.行锁
支持的存储引擎:Innodb;特点:开销大,加锁慢;会出现死锁;锁定粒度小,发生锁冲突的概率低,并发度高
2.表锁
支持的存储引擎:Innodb、MyIsam;特点:开销小,加锁快;不会出现死锁;锁定力度大,发生锁冲突概率高,并发度最低

二、细分表锁

对于表级锁,主要分为以下三类: 表锁 元数据锁(meta data lock,MDL) 意向锁

1.表锁:

表锁分为:表共享读锁(read lock)和 表独占写锁(write lock)其中读锁不会阻塞其他客户端的读,但是会阻塞写。写锁既会阻塞其他客户端的读,又会阻塞其他客户端的写。

2.元数据锁

meta data lock , 元数据锁,简写MDL。MDL加锁过程是系统自动控制,无需显式使用,在访问一张表的时候会自动加上。MDL锁主要作用是维护表元数据的数据一致性,在表上有活动事务的时候,不可以对元数据进行写入操作

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值