Mysql的锁(S锁和X锁的区别)
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,共享锁和排它锁Mysql的锁系统:shared lock 和 exclusive lock (共享锁和排它锁,也叫读锁和写锁,即read lock和write lock)读锁是共享的,或者说是相互不阻
千家信息网最后更新 2025年11月07日Mysql的锁(S锁和X锁的区别)
共享锁和排它锁
Mysql的锁系统:shared lock 和 exclusive lock (共享锁和排它锁,也叫读锁和写锁,即read lock和write lock)
读锁是共享的,或者说是相互不阻塞的
写锁是排他的,一个写锁会阻塞其他的写锁和读锁
在实际的数据库系统中,每时每刻都发生锁定,当某个用户在修改某部分数据1时,mysql会通过1锁定阻止其他用户对统一数据的读取。
共享锁【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。
排他锁用法:for update,比如,select name from table where id=1 for update;
锁的粒度和锁的策略
MySQL有三种锁的级别:页级、表级、行级。
MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。
MySQL这3种锁的特性可大致归纳如下:
- 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。
- 行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。
- 页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。
事务
数据
粒度
开销
引擎
死锁
存储
支持
最低
最高
之间
又称
对象
概率
用户
系统
页面
保证
冲突
阻塞
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
香肠派对的服务器是啥
远程连接腾讯云服务器登录不上
网上祭奠软件开发
山东智软件开发有限公司
软件开发能升本科
o2o软件数据库设计
数据库一次插入多条记录
数据库出版商的类型
我的世界新服务器招管理员
多数据库 支持
重庆北斗时间频率同步服务器
软件开发中.cs文件
中职高考数据库知识
奉贤区项目数据库服务价格查询
云计算与网络技术的 背景
西宁软件开发报价
战地4怎么买服务器
怎么描述软件开发需求
山东正规软件开发科技
网络安全告警分析选择题
阳信软件开发培训教学哪里好
武义交易软件开发
高中网络技术课件
坦克世界闪击战一直服务器繁忙
公众号可以当数据库
双鹿服务器cpu供电怎样接
大学软件开发精讲课程
湖南灵鹭互联网科技
深圳市蜂巢网络技术
对青少年网络安全教育的方法