传统数据库分布式化
业务应用系统可以按照交易类型分为 OLTP 场景和 OLAP 场景两大类
。OLTP 是面向交易的处理过程,单笔交易的数据量小,但是要在很短的时间内给出结果,典型场景包括购物、转账等;而 OLAP 场景通常是基于大数据集的运算,典型场景包括生成各种报表等。
OLTP 与 OLAP 两种场景有很大的差异,虽然传统数据库在其早期是将两者融合在一起的
。但是随着它们向分布式,特别是 Sharding(分片)领域转型,OLAP 类型的数据逐步被抛弃,它们将所有的精力集中在了 OLTP 上。
OLTP 场景通常有三个特点:
- 写多读少,而且读操作的复杂度较低,一般不涉及大数据集的汇总计算;
- 低延时,用户对于延时的容忍度较低,通常在 500 毫秒以内,稍微放大一些也就是秒级,超过 5 秒的延时通常是无法接受的;
- 高并发,并发量随着业务量而增长,没有理论上限。
传统数据库,比如 MySQL 和 Oracle 这样的关系型数据库就是服务于 OLTP 场景的
,但我们一般认为它们并不是分布式数据库。这是为什么呢?因为这些数据库传统都是单节点的,而我们说的分布式数据库