MySQL锁

在 MySQL 中,常见的锁类型有以下几种:

1. 共享锁(Shared Lock,简称 S 锁):

也称为读锁,多个事务可以同时持有共享锁,用于读取数据,不会阻止其他事务获取共享锁,但会阻止其他事务获取排他锁。

2. 排他锁(Exclusive Lock,简称 X 锁):

也称为写锁,只有一个事务可以持有排他锁,用于修改数据,会阻止其他事务获取共享锁和排他锁。

3. 记录锁(Record Lock):

在 InnoDB 存储引擎中,为了保证事务的隔离性,会对查询结果集中的每一行都进行加锁,这种锁就称为记录锁。

4. 意向锁(Intention Lock):

在 InnoDB 存储引擎中,为了优化锁的竞争,引入了意向锁的概念。当事务在某一行数据上请求共享锁或排他锁时,InnoDB 会在表级别上自动获取相应的意向锁,表示该事务可能会在该表的某一行上获取相应的共享锁或排他锁。

5. 自增锁(Auto-Increment Lock):

在使用自增主键的表上插入新记录时,InnoDB 会对自增列进行加锁,以防止多个事务同时插入新记录导致主键冲突。

 

需要注意的是,锁的使用需要根据具体的业务需求和并发访问情况来进行优化,尽可能减少锁的持有时间和锁的粒度,避免死锁和长时间等待的情况。

posted on   SuperGuoYa  阅读(287)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示