存储 & 数据库 101 | 青训营笔记

100 阅读2分钟

这是我参与「第三届青训营-后端场」笔记创作活动的第4篇笔记。内容主要涉及存储和数据库的基础介绍。

数据的一生

  • 数据的产生
  • 数据的流动
  • 数据的持久化

    • 校验数据的合法性
    • 修改内存
    • 写入存储介质

存储 & 数据库的简介

  • 存储系统

一个提供了读写、控制类的接口,能够安全有效地把数据持久化的软件,即为存储系统。

  • 数据库

    • 分类

      • 关系型数据库

        • “关系”的概念:关系描述了一种集合,即任意元素组成的若干有序偶对,反映了事物间的关系。

        • 能力

          • 结构化数据友好
          • 支持事务(ACID)
          • 支持复杂的查询语言
      • 非关系型数据库

        • 能力

          • 半结构化数据友好
          • 可能支持事务(ACID)
          • 可能支持复杂的查询语言
    • 事务特性

      • A(tomicity):事务内的操作要么全做,要么不做
      • C(onsistency):事务执行前后,数据状态是一致的
      • I(solation):可以隔离多个并发事务,避免并发事务带来的读写异常影响
      • D(urability):事务一旦提交成功,数据保证持久性

主流产品剖析

单机存储

  • 概念:不涉及网络交互
  • 分类

    • 本地文件系统
    • key-value存储

分布式存储

  • 概念:在单机存储的基础上实现了分布式协议,设计了大量的网络交互
  • 分类

    • 分布式文件系统
    • 分布式对象存储

单机关系型数据库

  • 代表

    • Oracle
    • MySQL
    • PostgreSQL
  • 优势

    • 易于维护
    • 使用方便
    • 支持复杂操作
  • 缺点

    • 读写性能较差,尤其是对海量数据的读写
    • 固定的表结构造成灵活性不足
    • 在高并发读写需求面前,磁盘IO是很大的瓶颈

单机非关系型数据库

  • 代表

    • MongoDB
    • Redis
    • Elasticsearch
  • 优势

    • 格式灵活
    • 速度快
    • 拓展性强
    • 成本低
  • 缺点

    • 不提供SQL支持
    • 无事务处理
    • 数据结构相对复杂,复杂查询操作不便

分布式数据库

  • 原因:单机数据库在容量、弹性、性价比等方面遇到了一些挑战和需求,需要我们引入分布式架构来解决