存储与数据库 | 青训营笔记

78 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第1篇笔记。

本篇笔记对青训营课程“带你认识存储&数据库”进行一个总结整理,并梳理一些自己之前不清楚的数据库概念。

1. 数据持久化案例:

潜在的问题:

  • 数据库怎么保证数据不丢失?
  • 数据库怎么处理多人同时修改的问题?
  • 为什么用数据库?除了数据库还有别的存储系统吗
  • 数据库只能处理结构化数据吗
  • 有哪些操作数据库的方式?要用什么编程语言?

2. 存储&数据库简介

2.1 存储系统

2.2 数据库

关系型数据库

  • 关系是什么?

  • 关系型数据库也是存储系统 但是在存储之外 又发展处其他能力
    • 结构化数据友好
    • 支持事务(ACID)
    • 支持复杂查询语言SQL

非关系型数据库

  • 非关系型数据库也是存储系统 但是一般不要求严格的结构化
    • 半结构化数据友好
    • 可能支持事务
    • 可能支持复杂查询语言

2.3 数据库 VS 经典存储

  • 结构化数据管理

  • 事务能力
  • 复杂查询能力

面试过程中,面试官更多想考察的并不是SQL操作以及数据库框架的使用等等,而更喜欢问:

  • 数据库技术的演进过程 过程中出现的各种技术是为了解决什么问题 产生的原因是什么?
  • 计算机领域的很多知识 从底层原理和思想出发 都是相通的
  • 对于应届生来说 计算机基础还有计算机思想里面的哲学是最重要的

3. 主流产品剖析

3.1 单机存储

  • 文件存储

  • key-value存储

3.2 分布式存储

分布式存储 = 在单机存储基础上实现了分布式协议 涉及大量网络交互

  • 分布式文件系统
    • HDFS
    • Ceph

3.3 单机数据库

关系型数据库

非关系型数据库

  • Elasticsearch作为一款搜索引擎,使其在作为数据库使用时,天生具有支持模糊搜索,还能自动算出关联度的特点

3.4 分布式数据库

  • 单机数据库存在什么问题 导致需要引入分布式数据库?
    • 容量
    • 弹性
    • 性价比
    • (也是现在大厂基础架构部门最头疼的三个问题)

解决容量问题

  • 池化

解决弹性问题

  • 单机情况:

  • 分布式:池化技术 动态扩缩容

解决性价比问题