一、数据库的基础知识

课程大纲&回顾

课程主要内容

  • 存储
  • 查询引擎
  • 事务管理
  • 分布式一致性协议

可能涉及的数据管理系统

  • LevelDB(Google) — 存储 (NoSQL)
  • TiDB(PingCAP) — 查询
  • DBX1000(Prototype) — 事务管理

回顾

  • 传统关系数据库 — 单节点数据库

    • 不能满足性能的需求
  • NoSQL — 非结构化数据管理

    • key-value存储(任意数据)
    • 数据特征(图数据——Neo4j、文本数据、时序数据库)
  • NewSQL — 可扩展的分布式数据库

  • OldSQL vs. NoSQL vs. NewSQL
    一、数据库的基础知识

  • 如何评价数据库性能?

    • 响应时间
    • 吞吐率:每秒完成操作的数量

1. 性能

  • 时延(响应时间)
  • 吞吐量 —— 事务/简单查询的吞吐率
  • 可扩展性 —— 增加计算资源(CPU,节点)后系统性能的增长趋势(有没有线性增加)

特殊性能指标

  • 日志的恢复时间
  • 节点的切换时间(一台节点挂了之后要切换)

从系统内部看什么会影响性能

  • critical path 类似于os中的临界区

2. 容错

  • 系统如何应对节点问题?
    • 节点宕机、重启
    • 网络分区、延迟
  • 数据库系统中有何体现?
    • 日志管理
    • 一致性副本

数据一致性

  • 数据一致性在不同场景中有不同意义(常用的三种)

    • 读写操作一致性(多核CPU,KVS系统)
      • 读操作时有静态数据、动态数据,以动态数据为准。
    • 读写集合操作(事务ACID)
    • 副本间数据一致性
      • 数据传递也需要时间
  • 实现

    • 日志的实现(WAL)
    • 并发控制的实现

一个典型的数据库系统架构图

一、数据库的基础知识