问题标签 [isolation-level]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 具有 innodb 和可序列化事务的 Mysql 不会(总是)锁定行
我与 aSELECT
和 possible进行了交易INSERT
。出于并发原因,我添加FOR UPDATE
到SELECT
. 为了防止出现幻行,我使用了SERIALIZABLE
事务隔离级别。当表中有任何行时,这一切都可以正常工作,但如果表为空则不行。当表为空时,SELECT FOR UPDATE
不执行任何(排他性)锁定,并发线程/进程可以发出相同的问题SELECT FOR UPDATE
而不会被锁定。
这个概念在 SQL Server 上可以正常工作,但在 MySQL 上不行。关于我做错了什么的任何想法?
编辑
在 display_order 上添加索引不会改变行为。
database - READ_UNCOMMITTED vs 没有交易?
在事务之外执行 SQL 与在 READ_UNCOMMITTED 隔离模式下执行 SQL 有什么区别?
澄清:我试图了解java.sql.Connection.TRANSACTION_NONE和java.sql.Connection.TRANSACTION_READ_UNCOMMITTED之间的区别
mysql - 在单个字段上可靠地减少/增加所需的隔离级别
假设我们有一个如下表,
我们有多个用户在指定时间段内(例如 2 小时)移除兔子。(所以最少0个兔子,最多1000个兔子,兔子被退回,不是用户添加的)
我正在使用两个基本的事务查询,例如
当有人归还兔子时,
当有人试图带走兔子时。我假设这些查询将在引擎盖下实现某种原子性
用户必须不能比每个国家/地区拥有更多的兔子(即,如果 23 个用户同时交易,则 -23 个兔子)
我的问题是,在这种情况下我如何保持 ACID 安全,同时能够同时添加/递增/递减 bunnies 字段,同时保持在范围内(0-1000)我可以将隔离级别设置为序列化,但我我担心这会影响性能。
有小费吗?提前致谢
database - 数据库中的隔离级别
我理解隔离级别的概念。但是你如何设置它以及在哪里?我从来没有在java程序中看到过这个问题。
transactions - 如何获取 DB2 上的当前隔离级别?
我正在尝试了解事务在 DB 中的工作方式,为此我编写了以下测试 SQL:
执行此代码后,将一行添加到表中。但是,如果我在开头添加以下行:
一切都按我的预期工作,即事务正确回滚并且数据库中没有新条目,但是如果我再次运行此代码,Data Studio 会在第一行显示错误:
所以我的问题是:有没有办法获得当前的隔离级别,为什么我不能设置隔离级别超过 1 次?
我将非常感谢所有答案和链接。
PS。我正在使用 DB2/iSeries V5R4。
聚苯乙烯。对不起,我的英语不好
hibernate - JBoss TreeCache 作为二级 Hibernate 缓存的并发策略配置
我正在使用 JBoss EAP 4.3。
当使用内置的 JBoss TreeCache 作为 Hibernate 的二级缓存时,我目前正在研究并发策略的不同选项。我已经设置了它,并且通过查看日志验证了缓存是否正常工作,但我不确定真正使用了什么并发策略以及它是如何工作的。
@Cache
对于每个实体,我可以在注释中设置以下“使用”值之一: NONE
, READ_ONLY
, NONSTRICT_READ_WRITE
, READ_WRITE
, TRANSACTIONAL
。
另一方面,在我的JBossTreeCache
配置文件中,我可以将IsolationLevel
整个缓存设置为以下之一:NONE
, READ_UNCOMMITTED
, READ_COMMITTED
, REPEATABLE_READ
, SERIALIZABLE
(或仅使用OPTIMISTIC
)。
一次查看一个配置选项时,文档非常清楚,但我想知道当您组合不同的选项时会发生什么。
例如,如果您@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL)
为实体设置但配置NONE
为IsolationLevel
,JBossTreecache
会发生什么?
我也相信JBossTreeCache
只支持NONE
,READ_ONLY
和TRANSACTIONAL
使用,但IsolationLevel
你可以将它们与什么结合起来?如果你使用例如会发生什么NONSTRICT_READ_WRITE
?
这里总共应该有 5x6 不同的组合,但并非所有组合都有意义..
谁能帮我解决这个问题?
spring - 在基于 Spring 注释的事务中设置隔离级别
我在我的项目中使用基于注释的事务管理(我用@Transactional 注释了一些方法)。我想全局设置隔离级别(而不是将其作为每个 @Transactional 注释的参数)。
是否可以在 XML 中进行配置?目前我的 xml 配置包含
是否可以以某种方式将隔离添加到 tx:annotation-driven?
sql - SQL Server:如何获取排他锁以防止竞争条件?
我有以下 T-SQL 代码:
我正在使用标有注释的“锁定”黑客来获取排他锁。
注意:使用 TABLOCKX 或 UPDLOCK 提示将不起作用,因为我通过拆分语句并在中间添加 WAITFOR 命令来破坏原子性以进行测试。我不想要这样的东西:
这是运行两个同时会话后的正确结果(带锁表)
这是在注释掉锁的情况下运行代码的错误结果
有没有更好的方法来获取事务范围的独占锁而没有这种黑客攻击?
mysql - 在 mysql 中查看查询的隔离级别
如何确定给定查询使用的隔离级别?执行查询后(由第 3 方应用程序),我想知道使用了哪个隔离级别(例如,未提交的读取)。
需要明确的是,我目前正在开发一个使用 EF4 对 mysql 5.1 运行的应用程序。我正在尝试测试不同的编码模式以更改特定 EF4 查询的隔离级别。我需要能够测试并确保隔离级别设置正确。