MySQL隔离级别性能

时间:2018-03-11 05:51:12

标签: mysql concurrency locking

这是Transaction isolation levels relation with locks on table

的后续问题

我想知道隔离级别之间的速度差异。您可以实现哪些速度优势在各级之间切换?你能证明这些中的每一个都可以导致锁定等待吗?

我也想知道:做这个更新查询:

UPDATE product SET sold = 1 WHERE id = 10 AND sold = 0;

如果有人在执行查询期间修改了标记sold,它会对这些采集级别产生不同的后果吗?

1 个答案:

答案 0 :(得分:1)

间隙锁定是READ COMMITTED和REPEATABLE READ之间的常见区别。如果您在争用相同的间隙锁时遇到并发查询,则会影响锁定等待时间。

在您显示的UPDATE查询中,假设id是主键,查询应使用主键索引来选择单行,因此该查询不会有间隙锁。

重新评论:

锁定对性能没有影响。如果查询必须等待获取查询所需的锁,则锁等待可能延迟执行的开始,但是一旦执行开始,它将在任何事务隔离级别具有相同的性能。

此外,如果没有任何并发​​查询保存所需的锁,则不会有额外的等待锁。