12.2 数据库有哪些分类



以前,只是介绍了一种数据库。

未来:会有很多种。

一、按照用途分类

1.1 三种

  • 在线-事务处理
  • 在线-分析处理

1.2 OLTP:事务处理

MySQL数据库,就是用来跑事务的。

现在,开发的大部分业务,都是此类。

  • 经常是成千上万的用户,来访问

内心OS:

我印象中,数据库不就是干这活儿的吗?还有干其他活儿?

1.3 OLAP:分析处理

1.

  • 专门大数据处理的,支持商业决策
  • 分析语句:一个甚至有两百多行
  • Hive,就是基于Hadoop的;GreenPlum是基于上面的PostgreSQL

2.

分析型的SQL语句:

在销售的数据中,筛选出某个产品每个月的销售排名,以及找出上一名的产品、下一名的产品。并对比与它们的差距:

三层的嵌套子查询、复杂的聚合等

3.

事务型的数据库,比如MySQL,能跑得了上述分析型的sql语句吗?

跑的了。

但是,很慢。

因为MySQL不擅长大数据量、大sql语句,而是擅长短小事务。

同理,分析型的数据库,跑高并发的短小事务,就不擅长。

术业有专攻:

可以完成功能,但是性能不好。

1.4 HTAP:混合

混合动力汽车:油电混合

既擅长短小高并发事务,有擅长大数据量的大sql语句。

二、按存储形式分类

2.1 三种

2.2 行存(最常用):跑事务场景

比如行记录格式。

因为,平时的业务开发,就是一行一行的操作。

2.3 列存:跑分析场景

比如:

求所有人的平均年龄。

列存,更好用。直接把那一列拿出来即可。如果是行存,就必须全表扫描。

2.4 KV

非关系型数据库,只有键值对。

三、按架构分类

3.1 四种

3.2 Shared-Everything :不用

右边:是电脑的三大件:CPU、内存、硬盘

这个数据库集群,就在这一台大的服务器上。即,在一个服务器上,起了很多的数据库节点。

3.3 Shared-Memory:共享内存

还是那一台大的服务器,分开了多个独立的CPU。可以拓展计算能力。

但是,内存、硬盘,还是公用的。

好处:CPU之间,可以用内存进行通信。

不足:存储没有扩展

场景:数据库用的少,但是超级计算机用的多。比如神威-太湖之光

3.4 Shared-Disk:共享硬盘(外存)

每个数据节点,有它自己的CPU、内存,这就可以称为一台独立的电脑或服务器。

场景:

  • 比如阿里的PolarDB数据库
  • 比如网吧:所有网吧的电脑都有CPU、内存,啥都有,就是没有硬盘。因为所有的电脑,都共享同一个大型的中央存储。

优点:统一管理、节约硬盘成本

3.5 Shared-Nothing:啥也不共享

最常见。不管是主从复制,还是分库分表,都是独立的电脑。

比如:我在自己的物理机上面,创建了三个虚拟机,各自独立。

啥都不共享,如果有数据交互,走网络。

四、小结

声明:Jerry's Blog|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 12.2 数据库有哪些分类


Follow excellence, and success will chase you.