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

68 阅读2分钟

这是我参与「第五届青训营」笔记创作活动的第 15 天。笔记旨在记录自己的学习过程以及跟更多人分享交流,重点讲干货,不扣细节,从整体认知。废话不多说,上内容!!!

本堂课重点内容

  1. 经典案例
  2. 存储 & 数据库简介
  3. 主流产品剖析
  4. 新技术演进

详细知识点介绍

经典案例

通过一个模拟案例,描述了数据是怎么产生,在后端系统里怎么流通,最后怎么写入到存储/数据库系统。

1.png

2.png

存储 & 数据库简介
  • 存储系统概览

    • 什么是存储系统?

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

    • 存储系统特点

      性能敏感、容易受硬件影响、代码既简单又复杂

    • 存储器层级结构

    • 单机存储栈

    • RAID技术

  • 数据库系统概览

    • 关系型数据库特点

      关系型数据库是存储系统,但是在存储之外,又发展出其他能力

    • 非关系型数据库特点

      非关系型数据库也是存储系统,但是一般不要求严格的结构化

    • 数据库 vs 经典存储

    • 数据库使用方式

主流产品剖析
  • 单机存储产品

    • 单机文件系统
    • 单机key-value存储
  • 分布式存储产品

    • HDFS
    • Ceph
  • 单机数据库产品

    • 关系型数据库 —— PG、MySQL
    • 非关系型数据库 —— ES、MongoDB、Redis
    • Elasticsearch使用案例
  • 分布式数据库产品

    • 问题与挑战
    • 解决方案
新技术演进

3.png

  • SPDK

  • 人工智能

  • 新硬件加速

4.png

实践练习例子

课后个人总结

  1. 传统行式数据库的特性如下:

  ①数据是按行存储的。

  ②没有索引的查询使用大量I/O。比如一般的数据库表都会建立索引,通过索引加快查询效率。

  ③建立索引和物化视图需要花费大量的时间和资源。

  ④面对查询需求,数据库必须被大量膨胀才能满足需求。

  1. 列式数据库的特性如下:

  ①数据按列存储,即每一列单独存放。

  ②数据即索引。

  ③只访问查询涉及的列,可以大量降低系统I/O。

  ④每一列由一个线程来处理,即查询的并发处理性能高。

  ⑤数据类型一致,数据特征相似,可以高效压缩。比如有增量压缩、前缀压缩算法都是基于列存储的类型定制的,所以可以大幅度提高压缩比,有利于存储和网络输出数据带宽的消耗。

引用参考

  1. 稀土掘金字节内部课
  2. 带你认识存储&数据库
  3. 后端专场 学习资料六 第五届字节跳动青训营