我正在尝试使用sysbench基准测试(默认配置)生成一些图形,试图在MySQL中显示死锁和隔离级别之间的关系。
但我得到了一些简单的结果:我的印象是,可重复读取会比读取提交的死锁更多(事实就是这样),但比未提交的读取要多得多。事实上,事实证明,未提交的read比任何一个都有更多的死锁。
这是正常的吗?如果是这样,为什么呢?
发布于 2012-06-09 18:52:59
Deadlock can happen in any isolation level。在没有实际测试的情况下很难判断,但我猜测,在读提交/可重复读的情况下,如果您必须读取正在更新的行的值,则将从回滚日志中读取该值,但如果未使用读未提交回滚日志,则如果该行被锁定以进行更新,则读取必须等待实际的值被写入。但这是一个胡乱猜测,在未提交的读取中有更多的死锁是一种奇怪的行为,而且很可能依赖于实现。如果你能提供实际的测试,如果测试可以在不同的MySQL版本中重复,我会很感兴趣。
https://stackoverflow.com/questions/9228747
复制相似问题