每个初创公司都有一个选择:用熟悉的东西(Postgres、MySQL......)开始建设,或者用新的东西(CockroachDB)开始建设。使用一个熟悉的数据库意味着工程师们可以在一个值得信赖的平台上开始建设。使用一个新的数据库则需要研究、测试和一段时间的适应期。
从表面上看,这似乎是一个简单的决定:用熟悉的数据库开始快速构建。再剥开一层洋葱,就会明白为什么这么多处于成长阶段的公司决定使用CockroachDB而不是Postgres或MySQL。
以规模为出发点
几乎每家创业公司的工程师都有使用Postgres或MySQL的经验。这意味着他们对扩展传统数据库的难度非常熟悉。一个不容易扩展的数据库对于成长阶段的公司来说是一个问题,这些公司的目标通常包括成为下一个Uber、下一个Snapchat或下一个Airbnb。
初创公司必须做出的选择是,他们是否想从一开始就建立规模和弹性,或者他们是否想在成为下一个Uber的道路上忍受迁移。理论上,他们可以留在PostgreSQL上,并试图扩大它的规模,但分片的操作复杂性是困难的,而且随着自动分片的数据库的扩散,将变得越来越难以忍受。
横向扩展是推动NoSQL数据库大量采用的原因。现在,分布式SQL数据库(如CockroachDB)也在做同样的事情,它可以提供与NoSQL数据库相同的水平规模,但也提供交易一致性和,嗯,SQL。
Postgres的兼容性。陌生的就是熟悉的
Postgres和MySQL的熟悉性对于那些想要快速开始建设的初创公司来说往往太有诱惑力了。他们愿意在一个传统的数据库上进行建设,因为他们知道他们最终会需要迁移到更可扩展的东西上。
这些初创公司可能没有意识到,CockroachDB采用了Postgres wire协议 ,并且与jOOQ、Django等开发者友好型工具兼容,使初创公司在新数据库上也能快速构建。
这种熟悉的感觉让开发者很高兴,他们可以放心地使用SQL,同时也可以探索CockroachDB与Kubernetes和其他云原生服务的独特兼容性。
想了解更多关于初创公司选择CockroachDB的原因,请阅读关于TuneGO的案例研究,TuneGO是一家音乐行业的初创公司,选择CockroachDB的原因是规模、弹性和Kubernetes兼容性。