• 数据库系统的并发控制的两种实现模型


    目前关系型数据库系统中有两种锁定模型:

    一种是mvcc(Multi-Version Concurrency Control),方便并发控制的。

    大多数rdbms都是使用这种方式实现。读不加锁,写加锁的机制。

    另外一种是Lock-Based Concurrency Control

    要多补充点数据库理论知识了

    术语

    ACID概念

    原子性(Atomicity) A

    一致性(Consistency) C

    隔离性(Isolation)I

    持久性(Durability)D

    传统的关系型数据库必须会实现上面几个点的。而mongodb是不会的。发生crash(意外崩溃)数据容易出现问题。

    mongodb采用的mmap机制,在断电和某些异常情况下有可能丢失数据或者crash,好消息是1.8以后可以打开journal日志来避免此类问题

    schema less是一把双刃剑,因为什么数据都可以往里面存,不像mysql那样会有字段的概念可以对数据有效性把最后一道关,需要在编写程序的时候特别注意一下数据有效性

    关系型数据库是怎么避免突然掉电、机器崩溃等意外事情数据仍然持久化?

    通过写日志的形式。实际上关系型数据库在写入数据的时候,并不会马上写入到磁盘上去。而是在内存中,这样做的目的是,避免磁盘的i/0能力限制。所以它们一般是有个机制定期刷新数据到磁盘上。但是内存中的数据是不持久的,一旦掉电,内存中的数据都会没了,所以为了解决临时掉电等问题,保证数据持久化,所以每次操作都会写入一个日志文件。

    下回启动,就根据这个日志文件来恢复数据。

     欢迎指正!

  • 相关阅读:
    python——numpy (二)
    python——numpy(一)
    python——matplotlib
    redis
    图片验证码识别技术——Tesseraact
    Linux 环境变量PROMPT_COMMAND
    maven项目管理工具
    Log4J日志组件
    java中的泛型,注解
    数据库备份还原
  • 原文地址:https://www.cnblogs.com/wangtao_20/p/3505693.html
Copyright © 2020-2023  润新知