哪个是插入行的最佳事务隔离级别?

问题描述 投票:1回答:1

我需要了解哪些是最好的事务隔离,我可以用来做这两件事:

  1. 在表A中保存一行
  2. 在表B中保存一行

我知道,如果我使用像事务隔离SERIALIZABLE,它工作正常,但我需要知道是否可以使用READ_COMMITEDREPEATEBLE_READ。我在两个不同的表中只保存了两行,所以我没有进行READ操作,所以我认为READ_COMMIT是最好的解决方案吗?有人可以帮帮我吗?

transactions isolation-level
1个回答
1
投票

是否要求将新的A和B行保持在一起并且只能一起显示?如果你没有阅读任何东西,并且A和B没有必要一起出现就可以了,那么你甚至不需要在这里进行交易。

这是一个很好的相关阅读:https://www.sqlpassion.at/archive/2014/01/21/myths-and-misconceptions-about-transaction-isolation-levels/

此外,以下与我之前所说的相矛盾(此处已经删除/更新):

https://docs.microsoft.com/en-us/sql/odbc/reference/develop-app/transaction-isolation-levels?view=sql-server-2017

读取未提交:事务不是彼此隔离的。如果DBMS支持其他事务隔离级别,它将忽略用于实现这些级别的任何机制。因此,它们不会对其他事务产生负面影响,以Read Uncommitted级别运行的事务通常是只读的。

它也很好地描述了其他州。听起来像Read,这将是最好的。

Read Committed:事务在当前行上保持读锁(如果它只读取行)或写锁(如果它更新或删除行)以防止其他事务更新或删除它。当事务离开当前行时,事务会释放读锁定。它保持写锁定,直到它被提交或回滚。

这样可以让你在评论中提到的删除和插入安全地发生。

© www.soinside.com 2019 - 2024. All rights reserved.