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 2023-05-21 20:54 SuperGuoYa 阅读(287) 评论(0) 编辑 收藏 举报
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)