如果一个用户读取/写入特定的表格行。在MySQL(Inno Db)中锁定和解锁表格行
同时,如果其他用户来读取/写入该特定行。那么他将无法做到这一过程。
第一个用户释放该行后,只有第二个用户可以访问该行。
我该如何在mysql中实现它?
我可以用锁&解锁表,但它会明确地锁定整个表
是否有任何其他的解决方案,使该行明智的锁定是可能的吗?
如果一个用户读取/写入特定的表格行。在MySQL(Inno Db)中锁定和解锁表格行
同时,如果其他用户来读取/写入该特定行。那么他将无法做到这一过程。
第一个用户释放该行后,只有第二个用户可以访问该行。
我该如何在mysql中实现它?
我可以用锁&解锁表,但它会明确地锁定整个表
是否有任何其他的解决方案,使该行明智的锁定是可能的吗?
MySQL MyISAM支持table-level locking
。更改为InnoDB
引擎row-level locking
锁定类型由数据库本身隐含。您无需执行任何操作即可强制进行行级锁定或表级锁定。
MySQL使用InnoDB表,以支持多个会话同时 写访问的行级锁,使其适用于 多用户,高并发,和OLTP应用程序。对于MyISAM,MEMORY和MERGE表,MySQL使用 表级锁,因此只允许 一次更新这些表,使它们更适合于只读,主要读取或单用户应用程序。
这就是所谓的Internal Locking其中锁定约how to lock a row for read
感谢您的评论。目前我使用inno Db。 所以你说,如果我们使用innodb,那么行级锁定是内部发生的,我们不需要执行任何操作? – 2013-04-24 07:09:52
是的,你不需要实现任何东西! – Vimalnath 2013-04-24 07:14:11
好吧,我的情况是,当一个用户读取一行时,其他用户无法读取该记录。它是否可以自动进行innodb? 我在读写行或删除记录过程中发生行级锁定 – 2013-04-24 08:08:07
集MySQL的引擎'innodb' MySQL服务器
更多内进行。它提供行级锁定。 – 2013-04-24 07:04:58
@YogeshSuthar感谢您的评论。所以你说,如果我们使用innodb,那么行级锁定是在内部发生的,我们不需要执行任何操作? – 2013-04-24 07:08:48
是............. – 2013-04-24 07:10:07