您的位置:首页 > 数据库

读写权衡与关系型数据库Nosql数据库

2018-01-23 08:25 246 查看

背景

不同类型的数据库,如果不同的读写诉求,怎么推动和决策?

具体

在关系型数据库中,如果设计得当(表的粒度合理),那么修改操作只会影响很小一部分,但是,如果是复杂的读,那么就需要多个表之间进行复杂的关联等操作。

在nosql中,比如ES,它天生接受你的数据扁平化,那么复杂的读在这里就不是问题,但是写,就变得影响很大。

关系型数据库是分割

而Nosql是聚合

一般的在线业务需求都是要求很高的写质量(比如事务),因此一般都是采用关系型数据库。

而离线的统计或者复杂查询都是要求很友好的读质量(多表关联无法满足的需求),因此一般都采用Nosql。

但是如果在线的复杂业务查询也需要很友好的读,怎么办?

采用nosql存储来经过聚合后的数据,那么,既要能满足足够好地支持复杂读,而且还要满足高质量写的需求。

那么就需要把nosql的劣势(比如事务)等通过一种机制来实现,达到数据的完整性等。

在复杂读过渡到使用nosql之间,有一个过渡的鸡肋方案:就是预热数据。但是预热也是有条件限制的(第一次访问会很慢,如果采用全量预热,那么就要能够计算出全量,如果不能,那么就无法全量)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: