社区
MySQL
帖子详情
MySQL表级锁,行级锁,页级锁 哪位大哥简单明了地讲解一下
woshimajia0005
2010-07-19 10:57:29
MySQL表级锁,行级锁,页级锁
要求:用自己的比较形象 简明的理解。
拒绝:百度或谷歌搜索后的复制贴。
...全文
835
6
打赏
收藏
MySQL表级锁,行级锁,页级锁 哪位大哥简单明了地讲解一下
MySQL表级锁,行级锁,页级锁 要求:用自己的比较形象 简明的理解。 拒绝:百度或谷歌搜索后的复制贴。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zuoxingyu
2010-07-20
打赏
举报
回复
[Quote=引用 3 楼 acmain_chm 的回复:]
MySQL 5.1支持对MyISAM和MEMORY表进行表级锁定,对BDB表进行页级锁定,对InnoDB表进行行级锁定。
对WRITE,MySQL使用的表锁定方法原理如下:
如果在表上没有锁,在它上面放一个写锁。
否则,把锁定请求放在写锁定队列中。
对READ,MySQL使用的锁定方法原理如下:
如果在表上没有写锁定,把一个读锁定放在它上面。
否则,把锁请求放在读锁定……
[/Quote]
SQL功底可见一斑。至少200年的内力。
luketty
2010-07-20
打赏
举报
回复
ACMAIN_CHM 解释的很全面啊 佩服
qurihong
2010-07-20
打赏
举报
回复
锁的范围:表,行,页
大小关系:表>行,页可以包含表、行,也有可能一行跨几个页(比较少见)
选择原则:根据实际应用以及性能要求(和表记录的多少,大小,sql操作,以及锁的开销都有关系)
ACMAIN_CHM
2010-07-19
打赏
举报
回复
MySQL 5.1支持对MyISAM和MEMORY表进行表级锁定,对BDB表进行页级锁定,对InnoDB表进行行级锁定。
对WRITE,MySQL使用的表锁定方法原理如下:
如果在表上没有锁,在它上面放一个写锁。
否则,把锁定请求放在写锁定队列中。
对READ,MySQL使用的锁定方法原理如下:
如果在表上没有写锁定,把一个读锁定放在它上面。
否则,把锁请求放在读锁定队列中。
InnoDB使用行锁定,BDB使用页锁定。对于这两种存储引擎,都可能存在死锁。这是因为,在SQL语句处理期间,InnoDB自动获得行锁定和BDB获得页锁定,而不是在事务启动时获得。
行级锁定的优点:
· 当在许多线程中访问不同的行时只存在少量锁定冲突。
· 回滚时只有少量的更改。
· 可以长时间锁定单一的行。
行级锁定的缺点:
· 比页级或表级锁定占用更多的内存。
· 当在表的大部分中使用时,比页级或表级锁定速度慢,因为你必须获取更多的锁。
· 如果你在大部分数据上经常进行GROUP BY操作或者必须经常扫描整个表,比其它锁定明显慢很多。
· 用高级别锁定,通过支持不同的类型锁定,你也可以很容易地调节应用程序,因为其锁成本小于行级锁定。
在以下情况下,表锁定优先于页级或行级锁定:
· 表的大部分语句用于读取。
· 对严格的关键字进行读取和更新,你可以更新或删除可以用单一的读取的关键字来提取的一行:
· UPDATE tbl_name SET column=value WHERE unique_key_col=key_value;
· DELETE FROM tbl_name WHERE unique_key_col=key_value;
· SELECT 结合并行的INSERT语句,并且只有很少的UPDATE或DELETE语句。
· 在整个表上有许多扫描或GROUP BY操作,没有任何写操作。
ACMAIN_CHM
2010-07-19
打赏
举报
回复
表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程则读也不允许
行级,,仅对指定的记录进行加锁,这样其它进程还是可以对同一个表中的其它记录进行操作。
页级,表级锁速度快,但冲突多,行级冲突少,但速度慢。所以取了折衷的页级,一次锁定相邻的一组记录。
WWWWA
2010-07-19
打赏
举报
回复
页级:引擎 BDB。
表级:引擎 MyISAM。
行级:引擎 INNODB。
表级:理解为锁住整个表,可以同时读,写不行
行级:单独的一行记录加锁
php最小时间,PHP_PHP中比较时间大小实例,神马系PHP时间比较呢? 最简 - phpStudy...
PHP中比较时间大小实例神马系PHP时间比较呢?最简单的例子就是可以把两个时间用大于小于号进行两个时间的对比。有时候我们设计程序,需要控制用户操作某个功能时只能在某个时间段内可以操作,其余时间段不允许。比如,我有一个发布消息的网站,我这个网站上发布消息,然后我在通过这个消息群发给上千用户。按照普通做法,应该就是一旦发布消息,就立即把消息群发给上千用户。这样一来,只要一有最新消息,用户就第一时间收到...
AI前端场景下的大型表格性能优化实现细节
标题:AI前端场景下的大型表格性能优化实现细节 内容概要:从服务拆分、状态流转、容量评估与灰度发布出发,介绍AI前端场景下的大型表格性能优化实现细节的工程化落地方式。 le9.xilaohan.com yongshi-vs-senlinlang.jlsphdjx.com nopvsmia.hkyxjd.com krtrvs76r.hbwsjyyz.com nba.guaosi.com
利用MATLAB和AeroEngineS对飞机推进系统的热力学建模与性能分析.zip
1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
claude-resume-kit
claude-resume-kit
科技服务机构如何获取高质量的行业分析报告以增强客户服务能力?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
MySQL
57,062
社区成员
56,759
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章