When does locking or mvcc occur? Where do I need to specify

时间:2022-02-23 00:55:46

MVCC applies to isolation levels read-committed and repeatable read (default).

You don‘t need to specify anything for both of these features to work together. 

 

Row Level Locking

Locking is for when multiple writers are trying to update the same rows. Only one writer can update a row at a time, and the first one to update the row locks it until they commit the change. Other writers have to wait until the first writer commits. But at least with row-level locking, they only have contention if they‘re updating the same row.

A read lock can be used to prevent other users from reading a record (or page) which is being updated, so that others will not act upon soon-to-be-outdated information.

 

Multiversion Concurrency Control

  1. Writers don‘t block readers

  2. Readers don‘t block anyone, and don‘t get blocked by anyone(but the data readers is reading maybe historical version)