jackyfkc.github.io

教土豆学计算机

Data Storage

On the most fundamental level, a database needs to do two things: when you give it some data, it should store the data, and when you ask it again later, it should give the data back to you


Designing Data-Intensive Applications, Chapter 3, Storage and Retrieval

通常, 我们可以将存储系统分为二大类, 在线事务处理型 transaction processing (OLTP) 和在线分析处理型 analytics processing (OLAP).

分析型与事务型的工作负载主要区别是: 当查询需要顺序访问大量行记录的时候, 索引的作用变得无足轻重. 相反, 如何紧凑的对数据进行编码 (encode) 变得更加重要, 以减少查询时所需要从磁盘读取的数据量

进一步, OLTP 又可以分为二类

Data Storage often play an important role in establishing a service's SLA, especially when the business logic is relatively lightweight.
一个服务的 SLA 很大程度上取决于它的数据存储, 尤其是当业务逻辑相对较轻的时候.

Relational Data Store


Document Data Store

支持文档型数据模型的最主要观点是语义更灵活, 此外可通过局部性获得更好的性能; 不足之处是对 join 的支持比较弱


Key-Value Stores


Column Family Stores


Graph Databases


DB Ranking 来源 DB-Engines Ranking

Further Readings