上周有个朋友对我说,有人对他说你们还在用图数据库啊,应该现在流行用时序数据库了。听这个意思好像是后者是前者的升级或者替代。如果是我听到这话我都诧异,这是两个不同场景的产品,一般来说没有替换的情况。我们本着不能捧一个踩一个的原则,今天客观来说说。
首先什么是图数据库?
这段话来自百度:图形数据库是NoSQL数据库的一种类型,它应用图形理论存储实体之间的关系信息。图形数据库是一种非关系型数据库,它应用图形理论存储实体之间的关系信息。最常见例子就是社会网络中人与人之间的关系。关系型数据库用于存储“关系型”数据的效果并不好,其查询复杂、缓慢、超出预期,而图形数据库的独特设计恰恰弥补了这个缺陷。
可见这是一种反应关系的数据库,他的场景应该是社交。比如脉脉、linkin、企查查、天眼查等。
下图是我的部分好友(几年前做的)
以上的在一般的数据库中,部分也支持了。比如Oracle也支持图数据库,他讲一般的表用细胞图展示。比如下图:
如果我不说,你能想到这个红楼梦的是出自关系型数据库老大的Oracle吗?
那什么事时序数据库?以下来自百度:时序数据库全称为时间序列数据库。时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。
下图的这种KV式的监控就是类似时序数据库的场景。
他有几个特点:
1、没有事务,没有事务这一下就简单了。就因为这个是的NoSQL比较简单,从体系复杂度上来说被RDBMS“秒成渣”
2、几乎没有update和delete。因为场景不需要。他只要记录过往就行了。DML的增删改查一下少了一半。没有update就没有机会锁了。
3、允许丢数据,这又一下子少了要求。因为像上图一样,如果丢了几分钟数据,不影响画图,不影响趋势。
4、少了约束条件,所以就快了。大量写入和一定的查询,这就是物联网场景。所以以前Oracle支持时序数据库我一定都不吃惊,原来不丢数据库的,先都允许丢一点了,多好啊。
当然我最近看到PG也是支持时序数据库的。多模和超融合是未来,我希望有一天,一个数据库尽可能支持多的场景。就像现在的手机,电话、电视、拍照、游戏机、手电筒等等全部集于一身。