文档章节

MySQL_S锁_X锁_read lock_write lock

秋风醉了
 秋风醉了
发布于 2014/04/02 13:10
字数 551
阅读 4K
收藏 4

3 月,跳不动了?>>>

MySQL_S锁_X锁_read lock_write lock

 

共享锁和排它锁

MySQL的锁系统:shared lock和exclusive lock(共享锁和排他锁,也叫读锁和写锁,即read lock和write lock)

读锁是共享的,或者说是相互不阻塞的

写锁是排他的,一个写锁会阻塞其他的写锁和读锁

在实际的数据库系统中,每时每刻都发生锁定,当某个用户在修改某部分数据时,mysql会通过锁定阻止其他用户对同一数据的读取

 

共享锁【S锁】

又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。

这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。

 

排他锁【X锁】

又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。

这保证了其他事务在T释放A上的锁之前不能再读取和修改A。

 

锁的粒度和锁的策略

MySQL有三种锁的级别:页级、表级、行级。

MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。

MySQL这3种锁的特性可大致归纳如下:

表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。

页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。

================END================

© 著作权归作者所有

秋风醉了
粉丝 253
博文 532
码字总数 405557
作品 0
朝阳
程序员
私信 提问
加载中

评论(0)

MySQL MVCC && 事务隔离级别 && 锁

MySQL MVCC && 事务隔离级别 && 锁 InnoDB多版本并发控制——MVCC http://my.oschina.net/xinxingegeya/blog/208821 MySQLS锁X锁read lockwrite lock http://my.oschina.net/xinxingegeya/bl......

秋风醉了
2014/07/30
646
0
【mysql】不可不知的Metadata Lock

一、问题发生 说一个现象,当收到服务器报警之后,数据库服务器CPU使用超过90%,通过 一看,满屏都是 状态的连接。第一反应就是kill掉这些连接,奈何连接实在太多,实在kill不过来,于是重启...

踏雪无痕SS
2018/09/20
0
0
MySQL锁机制漫谈(一)

前言 数据库锁定机制是数据库为了保证数据的一致性而使各种共享资源在并发访问时变的有序的一种规则。MySQL数据库的各种存储引擎使用了三种的锁定机制:行级锁定、页级锁定、表级锁定。 行级...

Justlearn
2017/11/16
0
0
JAVA程序对MYSQL数据库加锁实验

以下实验仅在MySQL 5.0.45做的实验. 方法1:用mysql命令锁住表. 一、对于read lock 和 write lock官方说明: 1.如果一个线程获得一个表的READ锁定,该线程(和所有其它线程)只能从该表中读取...

mifans
2016/11/14
234
0
mysql的锁机制

锁概述 mysql锁机制的特点: 不同存储引擎支持不同的锁机制。 MyISAM和MEMORY存储引擎支持表级锁; BDB存储引擎采用页面锁; InnoDB存储引擎支持行级锁。 表级锁: 开销小,加锁快,不会出现...

暮回_梓
2017/09/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ftp杂记

1. 配置文件 有些版本的配置文件在/etc/vsftpd.conf,有些在 /etc/vsftpd/vsftpd.conf; 这样需要手动查找配置文件vsftpd.conf ,退回根目录,使用查找命令: find / -name 'vsftpd.conf' 2.指定f...

流光韶逝
14分钟前
10
0
Linux安装rabbitMQ

官网 : http://www.rabbitmq.com/install-rpm.html

那个猩猩很亮
19分钟前
7
0
linux定时任务crond export变量问题群友案例

linux定时任务crond export变量问题群友案例 1)我写了一个重启resin的脚本,由于业务原因,需要定时在某一个时间重启下resin服务器,于是就在 crontab里配置了如下内容: 50 17 * * 1-5 ro...

chen虎
24分钟前
12
0
iWork文档批量转换工具Docxtor for Mac如何使用?

你有大量的iWork™文件想与同事或朋友分享,但是你的朋友没有Mac并且无法打开iWork™文档?别担心,你可以将iWork™文档导出为Microsoft Office™!今天小编要给大家分享的是iWork文档批量转...

mac小叮当
29分钟前
17
0
python笔记:python实现带附件的邮件自动发送

目标:设置邮件自动发送 本文按照《对比Excel,轻松学习Python数据分析》中第14章自动发送电子邮件实例编写,试验成功,分享代码给大家 #!/usr/bin/env python# coding: utf-8# In[2]:...

小玲_001
31分钟前
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部