被另一个用户调用更新的InnoDB表中的锁定行会发生什么情况?它会等到解锁后再被其他用户调用更新吗?因此,用户页面将等待,直到解锁,然后执行,包括在另一个用户显示页面中的延迟?
我有一个网站,人们可以上传图片,和一个只有1行的表格,其中包含当前上传的图片数量(和文件夹名称"1","2“等),其中一个文件夹可以容纳一定数量的图片(例如7000)…这就是为什么他们增加。
我很好奇我的脚本是否做对了。
表(mya_pictures)中基本上只有一行,其中有一列对应于当前使用的文件夹("1","2","3"...)以及当前文件夹中的当前图片数量(不能超过7000 -该文件夹中文件的最大数量)....
文件成功上载后,使用UPDATE完成文件的增量。我在想,在多用户环境中,这是否会很好地工作。
谢谢
发布于 2013-06-25 18:14:50
根据文档:
如果第二个事务想要在不兼容模式下更新行或锁定已被前一个事务锁定的表,InnoDB会将该行的锁定请求添加到相应的队列中。对于要由事务获取的锁,必须删除先前输入到该行或表的锁队列中的所有不兼容的锁请求(持有或请求这些锁的事务提交或回滚)。
你可以在这里阅读关于Innodb锁定的内容:
http://dev.mysql.com/doc/refman/5.0/en/innodb-lock-modes.html
http://dev.mysql.com/doc/refman/5.0/en/innodb-lock-modes.html
~K
https://stackoverflow.com/questions/17294506
复制相似问题