京公网安备 11010802034615号
经营许可证编号:京B2-20210330
有些人做架构决策的时候纯粹是基于谁的声音大:
@xeraa @lukaseder 不,我们最重要的架构决策是基于 #tweets. 这是一个面向Twitter的体系结构。
— 加里斯 维斯特恩 (@gareth) 2016年9月21日
然而对其他大多数人而言,决策并不是这么简单。例如:什么时候我们应该启用NoSQL存储系统来代替关系型数据库管理系统(RDBMS)?
关系型数据库(RDBMS)能够适应所有情况
这个问题很明显,假设你开始就使用关系型数据库(RDBMS),这种传统的数据库系统能够解决任何问题且不容易被取代。这意味着什么?简单的举例:
关系型数据库(RDBMS)一直被使用,所以他们和”新来者“相比在市场上有巨大的优势, “新来者”缺少优秀的工具,如社区、支持也不够成熟。
埃德加·弗兰克·科德的工作对我们整个行业产生的最大影响可能就是,自那以后,几乎没有像关系模型那样具有革命性的东西了。对一个替代型数据库来说,它很难被普遍使用。意即它们通常被用来解决小问题。
有人会这么说,有时候你确实碰到一个小问题。 例如, 一个图形数据库的问题。然而事实上,图表和你在关系模型中所标识的东西没有什么根本性的不同。它很容易用多到多的关系表来模拟一个图。
这些同样使用于数据库中的XML/JSON(别忘记, JSON就是XML,但比XML少一些语法和属性,所以它更棒)。有时候,您需要在数据库中的层次结构中存储文档的结构(层次结构数据)而不是规范他们。当然你也可以先规范文档,但可能会做很大的无用功。
大多数现代关系型数据库提供XML/JSON数据结构来存储(以及更重要的查询)数据,包括PostgreSQL、Oracle、DB2、SQL Server等。
那么,我们什么时候决定切换?
作为开发人员,我们倾向于能够快速的切换。例如,当我们处理图形时,我们喜欢用Neo4j, 因为它具有不起的数字查询语言。 当我们使用JSON时,我们喜欢用Couchbase, 因为它实现了有趣的N1QL查询语言。这两种语言都深受SQL查询语言影响,在我看来我们的供应商会给我们提供明智的选择(不会像MongoDB基于JSON查询语言),终究原因,SQL语言乃是由最强大和最流行的4GL 曾经创造的。
但是作为开发人员,我们不应该轻率的做出决定。 首先,虽然这些专业的数据库看起来像是更好的选择,但是运营团队需要增加额外的维护成本、监控、补丁以及生产系统的额外调整。这在关系型数据库中真实的存在,最近的一个突出的例子是Uber从PostgreSQL 切换回MySQL:
然而唯一令人遗憾的是他们切换方式和以前相反,这点请注意。事实上你的团队总是喜欢使用相同的数据库有很多的原因,即使是这些数据库团队开发许可很贵,在很多案例里更贵:
从事额外的许可和/或合同需要新数据库供应商提供技术支持.
为了新技术寻找技能熟练的数据库管理员(DBA)(能够胜任新数据库).
维护两个数据仓库,并能维持数据同步的成本。
最终,有一个临界值:
@gareth @xeraa 一般情况下,都有一个临界值,没到临界点,可以坚持使用关系型数据库(RDBMS),在某种程度上就要开始考虑同时使用两种数据库或者完全迁移到另一个上。
— 卢卡斯埃德尔 (@lukaseder) 2016年9月21日
在数据库中使用JSON,这很简单:
偶尔使用JSON存储:坚持使用关系型数据库(RDBMS)。
一切以JSON为主:可以考虑不用关系型数据库(RDBMS)。
这个同样适用于图形问题。SQL完全能够处理图形和递归遍历。递归的计算子集之和,这是一个时髦的声明:
如果你只有一点树形/图形遍历需要计算(例如,一个简单的菜单结构),就无需涉及关系型数据库。如果图形存储是您的主要业务,那么关系型数据库可能不是一个好的选择。
结论
无论你要解决什么问题,请记住:如果你有一把锤子,而每一个问题开始的时候都可以当作钉子。但不要把关系型数据库当作是把愚蠢的锤子。不要小看它,在2016年它在处理非关系型小众的事情上做的非常的好。
关系型数据库仍然是处理各种数据问题的最好的选择。 只有当你存储超过一定阀值(或者你可以预见到要这么做),那是你应该去寻找替代品来替代它。因为当你去寻找一个新的(JSON,图形等)来改变的时候,要浪费你很多的时间回到你“正常”的关系业务里去。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
CDA数据分析师 出品 作者:李诗怡 1. VLOOKUP:按行跨区域找数据(最常用) 作用:在指定的表格或数据区域的第一列里找目标值, ...
2026-10-23数据敏感度不是天赋,也不是“看一眼数字就能发现问题”的直觉。对市场专员来说,它更接近一套可练习的工作习惯:看到投放ROI、 ...
2026-10-23市场营销专员转数据分析,不是从零重来。你已有的渠道投放、活动执行、线索跟进经验,本身就是分析工作的原料——缺的不是业务理 ...
2026-10-23先说结论:市场岗位并非必须考数据分析证书。招聘方更常看的是你能否把渠道效果、活动ROI、线索转化这些业务问题讲清楚,证书只 ...
2026-10-23市场分析师的职场知识提升,最怕两件事:一是把“学工具”当成学习本身,Excel、SQL、Python轮着学一遍,回到工作里还是不知道怎 ...
2026-10-23市场分析师的通用技能可以归为五块:业务与市场理解、调研与竞品分析、用户与渠道数据分析、指标与分析表达、工具操作。它们不是 ...
2026-10-23市场分析师的核心技能,可以先用一个框架回答:懂业务与市场、能取数与处理数据、会指标与分析方法、能把洞察讲清楚。这四块是共 ...
2026-10-23市场策划不是“会写文案、能办活动”这么简单。它本质上是一个用创意和资源撬动业务结果的岗位:先理解市场和人群,再形成方案, ...
2026-10-23社群运营不是“拉群、发通知、维护气氛”这么简单。它真正要对的结果是:用户进得来、留得住、愿意互动、最终产生转化或复购。因 ...
2026-10-23营销人的能力提升计划,最容易做成一张课程清单:报名几门课、读完几本书、考一个证,年底回头看,工作方式却没变。问题不在努力 ...
2026-10-23人力资源专员的职场价值,不由“做了多少事”决定,而由“解决什么问题、留下什么成果”决定。同样做招聘、算考勤、办入离职,有 ...
2026-10-23产品经理的职场价值,不主要由会画原型、会写文档决定,而由能否用业务结果证明自己的判断与推动决定。同一岗位的人价值差距大, ...
2026-10-23运营专员的能力提升,最容易走偏成两件事:一是把市面上所有工具都学一遍,二是把沟通、协作这类通用能力当成唯一答案。更有效的 ...
2026-10-23市场总监的沟通与管理,难点通常不在话术,而在三件事能否同时成立:向上用结论和数据对齐目标,平级用共同指标换取协同,向下用 ...
2026-10-23市场分析师的沟通失分,往往不是“嘴笨”,而是三件事没做好:结论没提炼出来、指标口径没对齐、建议没有落到决策上。所以提升沟 ...
2026-10-23社群运营做久了,很容易陷入一种忙碌:每天在群里发内容、回消息、做活动,热闹的时候很热闹,可一到月底复盘,说不清哪些动作带 ...
2026-10-23品牌运营的技能提升,最容易走偏的一步是先报课、先学工具。更有效的顺序是:先沿“品牌定位与策略—内容与传播—渠道与活动执行 ...
2026-10-23营销人员想赢得客户信任,单靠话术和关系维护越来越不够。客户在签约前会追问:你懂我的业务吗?方案里的数字怎么来的?承诺的效 ...
2026-10-23APP运营专员的能力提升,容易陷入两种误区:一是把“会用工具”当成能力全部,学了一堆Excel函数和SQL语法,回到岗位仍说不清一 ...
2026-10-23社群运营的沟通难点,不在于“会不会说话”,而在于同一件事要对三类人说清楚:对用户要安抚情绪、给出确定答复;对产品、活动、 ...
2026-10-23