锁问题

manynames 2011-03-02 11:33:11
select * from xx where id = ‘xxx' for update 加入xxx不存在,会不会锁住某个区间
...全文
52 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wdvill 2011-03-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zuoxingyu 的回复:]
引用 4 楼 manynames 的回复:
是innodb我select一个不存在的记录,会锁住同个索引区间的其他记录么?如果会是x还是s锁


select * from tbname where id>100 for update;
这样大于100的区间,全部锁定。不管有没有记录存在。
[/Quote]
赞成
iihero_ 2011-03-06
  • 打赏
  • 举报
回复
会. 对innodb来说
ACMAIN_CHM 2011-03-02
  • 打赏
  • 举报
回复
根据你的表的存储引擎而定。

myisam 是表锁
innodb 可以支持行锁。
小小小小周 2011-03-02
  • 打赏
  • 举报
回复
会把不存在表中的记录都锁住,在表中的记录都不会被锁
zuoxingyu 2011-03-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 manynames 的回复:]
是innodb我select一个不存在的记录,会锁住同个索引区间的其他记录么?如果会是x还是s锁
[/Quote]

select * from tbname where id>100 for update;
这样大于100的区间,全部锁定。不管有没有记录存在。
manynames 2011-03-02
  • 打赏
  • 举报
回复
是innodb我select一个不存在的记录,会锁住同个索引区间的其他记录么?如果会是x还是s锁
rucypli 2011-03-02
  • 打赏
  • 举报
回复
假设是innodb id是主键 无lock

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧