首页 > 关系型数据库,NoSQL数据库,NewSQL数据库权威整理
头像
linux地平线
发布于 2021-09-09 14:15
+ 关注

关系型数据库,NoSQL数据库,NewSQL数据库权威整理

12种数据库的全方位整理:mysql,mariaDB,Percona Server,MongoDB,Redis,RocksDB,TiDB,CouchDB,Cassandra,TokuDB,MemDB,Oceanbase






👀 数据库分类

英文名 中文名 定义 存储方式 ACID规则支持情况 CAP原理支持情况
Relational database 关系型数据库 采用了关系模型来组织数据的数据库 表格 支持ACID规则 满足CP,但A不完美
NoSQL 非关系型数据库 泛指非关系型的数据库,不保证关系数据的ACID特性 键值存储、列存储、文档存储等 不一定完全支持ACID规则 满足AP,但C不完美
NewSQL NewSQL NewSQL是对各种新的可扩展/高性能数据库的简称 多种存储方式 支持ACID规则 满足CAP
  • 原子性(A)
    一个事务的所有系列操作步骤被看成一个动作,所有的步骤要么全部完成,要么一个也不会完成。如果在事务过程中发生错误,则会回滚到事务开始前的状态,将要被改变的数据库记录不会被改变。
  • 一致性(C)
    一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏,即数据库事务不能破坏关系数据的完整性及业务逻辑上的一致性。
  • 隔离性(I)
    主要用于实现并发控制,隔离能够确保并发执行的事务按顺序一个接一个地执行。通过隔离,一个未完成事务不会影响另外一个未完成事务。
  • 持久性(D)
    一旦一个事务被提交,它应该持久保存,不会因为与其他操作冲突而取消这个事务。
  • Consistency(一致性): 数据一致更新,所有数据变动都是同步的
  • Availability(可用性): 好的响应性能
  • Partition tolerance(分区耐受性): 可靠性

举例来说在高可用的网站架构中,对于数据基础提出了以下的要求:

  • 分区耐受性
    保证数据可持久存储,在各种情况下都不会出现数据丢失的问题。为了实现数据的持久性,不但需要在写入的时候保证数据能够持久存储,还需要能够将数据备份一个或多个副本,存放在不同的物理设备上,防止某个存储设备发生故障时,数据不会丢失。
  • 数据一致性
    在数据有多份副本的情况下,如果网络、服务器、软件出现了故障,会导致部分副本写入失败。这就造成了多个副本之间的数据不一致,数据内容冲突。
  • 数据可用性
    多个副本分别存储于不同的物理设备的情况下,如果某个设备损坏,就需要从另一个数据存储设备上访问数据。如果这个过程不能很快完成,或者在完成的过程中需要停止终端用户访问数据,那么在切换存储设备的这段时间内,数据就是不可访问的。


🦩 关系型数据库

关系型数据库,是指采用了关系模型来组织数据的数据库

  1. 关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
  2. 通过SQL结构化查询语句存储数据。
  3. 强调ACID规则, 保持数据一致性。
知识体系 存储引擎 面试题 优化与集群架构 源码与配置参数 视频资源 文章 Paper 电子书籍 常见问题
🌴 🔱 🛠 📜 🧿 📄 🍀 📙 🧲

MySQL体系详解

MySQL架构图

image


MySQL亿级订单数据分库分表设计架构图(鑫语人间)


MySQL亿级流量系统设计每秒十万查询的高并发架构图(石杉)
  • MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。
  • InnoDB引擎使用B+Tree作为索引结构,叶节点保存了完整的数据记录(数据和索引)。
  • B+树原理详解

MyISAM索引实现

全部评论

(0) 回帖
加载中...
话题 回帖