zoukankan      html  css  js  c++  java
  • When does locking or MVCC occur? Where do I need to specify which one the database should use?

    MVCC一种多版本数据记录方式 读旧版本数据 写新版本数据 实现数据库事务的隔离级别 

    数据库事务的特性及其保障方式:

    原子性:使用 undo log ,从而达到回滚

    持久性:使用 redo log,从而达到故障后恢复

    隔离性:使用锁以及MVCC(read-committed and repeatable read),运用的优化思想有读写分离,读读并行,读写并行

    一致性:通过回滚,以及恢复,和在并发环境下的隔离做到一致性。

    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)

  • 相关阅读:
    注解
    es
    集合collection-map-list-set
    spring boot Configuration Annotation Proessor not found in classpath
    mvn
    linux_elasticsearch_jdk_ssh
    Floyd算法学习
    同一个job,不同shell之间传递参数
    jenkins post build tasks插件中log text参数的使用说明
    一个强大的jenkins 批量修改job的插件Configuration Slicing
  • 原文地址:https://www.cnblogs.com/lnas01/p/12291688.html
Copyright © 2011-2022 走看看