繁体   English   中英

Innodb交易会阻止读取或排序吗?

[英]Do Innodb transactions block reads or order by?

我有很多行的表,并按顺序排列了索引列。 我有事务可以更新此特定表的单行并更改该索引列的值(以及该行中的其他一些值)

我的问题是:

  1. 如果在事务更新时尝试读取行,可以这样做吗? 还是在事务完成之前阻止读取?

  2. 我所做的事务专门更新了索引列,我正在使用“ order by”查询对其进行排序。 SELECT * ... ORDER BY查询能否在不被这些事务阻止的情况下正常运行? 还是必须等到修改我正在排序的索引列的事务完成后才开始?

您正在询问事务的行为,而完全了解系统行为的最佳方法是阅读事务隔离级别,并查看数据库正在运行的事务隔离级别。

通常,您会发现,当更新一行时,该行被排他锁锁定,因此在事务完成之前不可用。

为了更直接地回答您的问题。

  1. 检查您是在读取已提交还是未提交的状态下运行,这可能与您在更新行时是否可以读取行有所不同。

    1. 事务隔离级别将起到同样的作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM