[数据库的认识 | 青训营笔记]

108 阅读2分钟

前言

数据库分类:

  • 关系型数据库:把数据结构化
  • 非关系型数据库:数据没有具体的结构

主流的数据库产品

单机存储

单机存储 = 单个计算机节点上的存储软件系统,一般不涉及网络交互

本地文件系统

Linux经典哲学:一切皆文件

管理单元:文件

文件系统结构:文件系统繁多,但都遵守VFS的统一抽象接口

Linux文件系统的两大数据结构:Index Node&Directory Entry

key-value存储

创建使用方法:Put和Get

常用数据结构:LSM-Tree,牺牲读性能,追求写入性能

LSM-Tree的结构,感兴趣的可以额外搜一下

分布式存储

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

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

分布式文件系统HDFS

大数据时代的基石

核心特点:

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

分布式存储——Ceph

Ceph:开源分布式存储系统里的万金油

核心特点:

  • 一套系统欧冠支持对象接口,块接口、文件接口,一切皆对象
  • 数据写入采用主备复制模型
  • 数据分布模型采用CRUSH算法

单机数据库

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

事务在单机内执行,页可能通过网络交互实现分布式事务

关系型数据库

商业产品Oracle称王,开源产品MySQLPostgreSQL

关系型数据库的通用组件:

非关系型数据库

MongoDB、Redis、Elasticsearch三足鼎立

非关系型数据库交互方式各不相同

都在尝试支持SQL(子集)和“事务”

Elasticsearch:天然能做模糊搜索,所以它是天生的搜索引擎

单机数据库遇到的问题和挑战

  • 容量
  • 弹性
  • 性价比

所以需要分布式数据库

分布式数据库

存储节点做池化,在存储池中有很多的磁盘,他会自动的扩缩容

解决了性价比的问题