Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择更新与更新/插入(MySQL)行锁定_Mysql_Locking_Innodb - Fatal编程技术网

选择更新与更新/插入(MySQL)行锁定

选择更新与更新/插入(MySQL)行锁定,mysql,locking,innodb,Mysql,Locking,Innodb,因此,在InnoDB中,如果执行以下两个查询中的任何一个,MySQL将锁定该行: Select bal from table where id=1 for update , 但是,在MySQL中有不同类型的行锁定: 读锁 写锁 读写锁 两个查询的行锁定类型(r、w、r&w)是否相同? i、 e.更新查询是否也会锁定该行,使其无法读取和写入?请删除隔离级别标记,它不相关对不起,如果您尝试读取该行,我会立即执行此操作?你的问题在这里得到了回答,就好像是专门为你写的:“选择。。。FOR UPDA

因此,在InnoDB中,如果执行以下两个查询中的任何一个,MySQL将锁定该行:

Select bal from table where id=1 for update
,

但是,在MySQL中有不同类型的行锁定:

  • 读锁
  • 写锁
  • 读写锁
两个查询的行锁定类型(r、w、r&w)是否相同?
i、 e.更新查询是否也会锁定该行,使其无法读取和写入?

请删除隔离级别标记,它不相关对不起,如果您尝试读取该行,我会立即执行此操作?你的问题在这里得到了回答,就好像是专门为你写的:“选择。。。FOR UPDATE:对于搜索遇到的索引记录,锁定行和任何关联的索引项,就像为这些行发出UPDATE语句一样。其他事务被阻止更新这些行,无法执行选择。。。锁定在共享模式下,或从某些事务隔离级别读取数据。一致读取忽略在读取视图中存在的记录上设置的任何锁。“这是一个理论问题吗?或者您是否有一个对性能问题感到困惑的上下文?在后一种情况下,让我们看看
SHOW CREATE TABLE
和事务”通常,在某些情况下需要使用特定的锁定,并且这些锁定是它们所需要的。
Update table set bal = 10 where id=1