Mysql的锁(S锁和X锁的区别)
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,共享锁和排它锁Mysql的锁系统:shared lock 和 exclusive lock (共享锁和排它锁,也叫读锁和写锁,即read lock和write lock)读锁是共享的,或者说是相互不阻
千家信息网最后更新 2025年01月22日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安全错误
数据库的锁怎样保障安全
文明上网网络安全知识
网络安全工具设计
青岛燃卡网络技术有限公司
中国香港超频服务器近期价格
服务器的集群管理软件
已经备案的域名换服务器
我的世界pe租服务器
编程软件开发方向
数据库报错1406
做软件开发累吗
苏州吴江警方维护网络安全稳定
计算机网络技术翻译中文
dell服务器无法识别文件系统
网约车软件开发资质
计算机网络安全引言
ios购买服务器通知
网络安全检测评估多久一次
学软件开发哪所职校
刘奇在全省网络安全
安徽数据网络技术哪家好
西门子pcs7系统冗余服务器
超好服务器
ibm服务器中国官网
liunx下达梦数据库安装
管理多个服务器工具
欧洲服务器平台
厦门市网络安全教育
学院网络安全责任制实施
三级计算机网络安全
河北net软件开发有用吗