数据对象存储优劣

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据对象存储优劣相关的知识,希望对你有一定的参考价值。

工作中遇到问题分析记录,先直接抛问题。
 
现有三层业务 A, B, C
 
原始数据 A 层,存储着 基础数据对象 Map => a... size 不小于 1000, 随机抛出 一个 数据对象( a1)
 
底层数据 B 层, 捕获数据A层 抛出的对象 a1 后, 经过一系列 db 查询, 深度算法 计算 等处理, 生成 a1 对应的结果 b1。B层将数据抛出
 
业务 C 层, 捕获B 层 数据,进行业务处理。
 
那么,问题就来了。如果A层, 在一段时间内多次 抛出 对象 a1 。 B 层 每次将要 消耗大量的资源处理 来 产出 b1。 为了解决这个问题, 鄙人想到三种方案, 分析并记录。 秘籍就是根据优缺点按实际情况选择(鄙人不推荐第三种)~
 
1. 每次按正常流程 走 A -> B -> C
优点: 无需多余的存储开销,整体流程 清晰 简单。数据更新及时
缺点: 计算,查询 开销大,结果产生速度,依赖于网络 以及 计算难易度
 
2. 在B 层 中维护一个 Map {a1_key => b1}
优点: 结构清晰,计算,查询开销小,结果产生速度 较快。无数据污染。
缺点: 需要多维护一个 Map,对于最新的 db 数据 更新不及时。
 
3. 将B 层中的结果 挂载至 对象 a1 上
优点: 计算,查询开销小,产出快。存取极其方便。
缺点: 存在对A 层数据污染,不易维护。

以上是关于数据对象存储优劣的主要内容,如果未能解决你的问题,请参考以下文章

利用存储过程优化复杂的数据库操作

MySQL存储引擎MyISAM与InnoDB的优劣

MySQL存储引擎MyISAM与InnoDB的优劣

MySQL存储引擎MyISAM与InnoDB的优劣

争议 | 这些分布式存储产品谁更胜一筹?FusionStorageXSKYCephvSANSmartX 等……

目前流行开源分布式存储系统的优劣对比分析