数据库 | 青训营笔记

95 阅读2分钟

数据库存储

存储系统特点

  1. 作为后端底座,性能敏感
  2. 存储系统软件框架,容易受硬件影响
  3. 存储系统代码,既“简单”又复杂

数据库存储系统非常考虑性能。存储系统的存储器层级结构约为金字塔型,越往上速度越快,价格越贵。

数据库.png

缓存是很重要的,贯穿整个存储体系。

存储系统与数据库区别

关系型数据库和非关系型数据库

  • 关系型数据库:结构化好,支持事务,支持复杂的查询语言
  • 非关系型数据库:半结构化数据友好,可能支持事务,可能支持复杂的查询语言

结构化数据管理

经典存储系统顺序化存取,无时无刻考虑byte. 数据库excel表格存取

数据库的事务能力:

  • A(tomicity),事务内的操作要么全做,要么不做(不会只执行一半)
  • C(onsistency),事务执行前后,数据状态是一致的(执行前后数据一致,转入100是100,不会变为50)
  • I(solation),可以隔离多个并发事务,避免影响
  • D(urability)),事务一旦提交成功,数据保证持久性

关系型查询比较灵活简洁,传统比较僵化和复杂

linux文件系统

Linux一切皆文件:文件接口繁多,但都遵循VFS统一抽象接口,分为两大数据结构:Index Node和Directory Entry

IN记录文件的元数据,如id,大小,权限,磁盘位置等。inode是一个文件的唯一标识,会被存储到磁盘上,inode的总数在格式化文件系统时就固定。

dentry是记录文件名、inode指针、层级关系等。它是内存结构,与inode的关系的是n:1

key-value存储:put(k,v)&get(k)。某些程度上牺牲读取性能,追求写入性能

分布式存储系统:实现了分布式协议。分为分布式文件系统和分布式对象存储

  • hdfs

    • 支持海量数据存储,高容错性,使用普通的x86服务器性价比高
  • ceph

    • 一切皆对象,采用主备复制模型,采用CRUSH算法

单机数据库:单个计算机节点上的数据库系统

  • 关系型数据库:Oracle和MySQL

  • 非关系型数据库:MongoDB、Redis、Elasticsearch

    • 数据结构千奇百怪。

分布式数据库

  • 容量受限 -> 存储节点池化,动态扩充