数据库学习笔记

2023年 8月 15日 64.7k 0

存储系统

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

数据库

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

  • 关系,即反应了事物间的关系
  • 关系代数,对关系作运算的抽象查询语言
  • SQL,一种DSL,方便人阅读的关系代数表达形式

关系型数据库特点

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

  • 结构化数据友好

  • 支持事务

    • 事务的优越性
      1.事务内的操作要么全做,要么不做
      2.事务执行前后,数据状态是一致的
      3.可以隔离多个并发事务,避免影响
      4.事务一旦提交成功,数据保持持久性
  • 支持复杂查询语言

非关系型数据库特点

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

  • 半结构化数据友好
  • 可能支持事务
  • 可能支持复杂查询语言

单机存储

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

  • 本地文件系统
    Linux文件系统两大数据结构
    Index Node & Directory Entry
  • key-value存储
    常见数据结构: LSM-Tree,某种程度上牺牲性能,追求写入性能

分布式存储

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

  • 分布式文件系统
  • 分布式对象存储
HDFS(堪称大数据时代的基石)

核心特点:

  • 支持海量数据存储
  • 高容错率
  • 弱POSIX语义
  • 使用普通x86服务器,性价比高
Ceph(开源分布式存储系统里的万金油)

核心特点:

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

单机数据库

概览:单个计算机节点上的数据库系统
事务在单机内执行,也可能通过网络交互实现分布式事务
关系型数据库:
MySQL & PostgreSQL

关系型数据库的通用组件:
Query Engine —— 负责解析query,生成查询计划
Txn Manager —— 负责事务并发管理
Lock Mannager —— 负责锁相关的策略
Storage Engine —— 负责组织内存/磁盘数据结构
Replication —— 负责主备同步
关键内存数据结构:B-Tree、B+-Tree、LRU List等
关键磁盘数据结构:WriteAheadLog(RedoLog)、Page

非关系型数据库
MongoDB、Redis、Elasticsearch三足鼎立
关系型数据库一般直接使用SQL交互,而非关系型数据库 交互方式各不相同
非关系型数据库的数据结构千奇百怪,没有关系约束后,schema相对灵活
不管是关系型数据库,大家都支持SQL(子集)和“事务”

分布式数据库

容量,弹性和性价比问题

解决容量问题

单机数据库,单点容量有限,受硬件限制
分布式数据库,存储节点池化,动态扩缩容(池化技术)

解决弹性问题

存储节点池化,动态扩缩容(池化技术)

解决性价比问题

存储节点池化,动态扩缩容(池化技术)

More to Do

多写、内存弹性、分布式事务优化

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论