这标题乍一看让人有点懵,实际上是两个相反的问题:
为什么初创公司适合用NoSQL?
为什么初创公司不适合用NoSQL?
写这篇文章是因为读到了这篇文章《Why NoSQL is bad for startups》,于是我想起原来读过的几篇类似的文章,有正面的如这篇《Why your startup should be using MongoDB》,反面的如这篇《Why startups should not choose NoSQL》等等。
这些文章的作者基本上都是创业公司的技术人员,在创业公司技术选型中相中了某个NoSQL产品,经过一段时间的使用后,要么是用得顺风顺水,要么是被NoSQL搞得精疲力竭。于是有了各种大肆吹捧NoSQL的文章,有了各种劝人慎用的文章,有了各种把NoSQL贬得一文不值的文章。
总结这些文章,大概有这么些观点:
为什么初创公司不适合用NoSQL?
- NoSQL还不太成熟,一个Bug可能导致重大的损失,在初创公司,更可能是毁灭性的问题。
- NoSQL人才不好找
- NoSQL技术不成熟,还处于发展阶段,今天用的核心功能可能明天就没了
- NoSQL的用法太怪异了,和传统的关系型数据库设计思路冲突
- NoSQL周边工具太少,比如客户端库不足,监控运维工具需要自己写
为什么初创公司适合用NoSQL?
- NoSQL很酷
- NoSQL扩展性好,可以轻松伴随一个新公司的快速业务增长
- 很多NoSQL是schema free的,可以应对初创公司的频繁变化
- NoSQL提供了一些传统数据库没有的功能,比如Redis灵活的数据结构
- NoSQL便宜,绝大多数NoSQL都是开源免费的,你不需要花钱购买
其实上面说的都没错,主要在于个人的选择,如果你在没有充分了解一个NoSQL产品的情况下就使用它,出现各种不可预知的问题是正常的。所以我们一直提倡不要为了用而用,为了设计而设计,为了架构而架构,最适合你的才是***的,你最了解的才是最适合的。如果你真的觉得某个东西很酷,你双手发痒头脑发热想用一用,那请你先去了解它吧。(对于NoSQL,你可以在NoSQLFan上找找学习资料)
***援引一条百姓网CEO王建硕的微博:
“对同一个东西,有人说,太重了,有人说,太轻了。他们其实不是在描述这件东西的重量,而是在描述他们自己的力气。同样道理,我们不必过于在意微博上对自己观点的评论。大家看似赞扬或者批评别人,其实仅仅是在描述他们自己。”
【编辑推荐】