分布式存储面试
缓存
扩展:
...大约 11 分钟
扩展:
HBase 是一种 NoSQL 数据库,它是Java版本的 Google’s Big Table 实现,它原本是 Hadoop 的子项目,现在已独立出来,并成为 apache 的顶级项目。
HBase 的设计目标是用于存储大规模数据集。HBase 是列式数据库,与传统行式数据库相比,其非常适合用于存储稀疏性的数据。
HBase 是基于 HDFS 实现的。
HBase 关键特性:
LSM 被广泛应用于很多以文件结构存储数据的数据库,如:HBase, Cassandra, LevelDB, SQLite。
LSM 的设计目标:通过顺序写来提高写操作吞吐量,替代传统的 B+ 树或 ISAM。
略
数据分片
水平分片:按行进行数据分割,数据被切割为一个个数据组,分散到不同节点上。
垂直分片:按列进行数据切割,一个数据表的模式(Schema)被切割为多个小的模式。
数据同步
数据库同步用于帮助数据库恢复一致性。
分布式数据库发展就是一个由合到分,再到合的过程:
读写分离的基本原理是:主服务器用来处理写操作以及实时性要求比较高的读操作,而从服务器用来处理读操作。
分库分表主要基于以下理由:
# | 分库分表前 | 分库分表后 |
---|---|---|
并发支撑情况 | MySQL 单机部署,扛不住高并发 | MySQL 从单机到多机,能承受的并发增加了多倍 |
磁盘使用情况 | MySQL 单机磁盘容量几乎撑满 | 拆分为多个库,数据库服务器磁盘使用率大大降低 |
SQL 执行性能 | 单表数据量太大,SQL 越跑越慢 | 单表数据量减少,SQL 执行效率明显提升 |