背景
关系型数据库作为数据库领域中重要的一员,已经成为一种被广泛应用的成熟技术。关系型数据库,采用高度结构化、范式化的二维表及其之间的联系来组织和存储数据,通过结构化查询语言SQL来实现数据访问,提供了强大的事务ACID能力和数据完整性支持。
近年来,敏捷软件开发逐渐流行,需要高效率、适应性更强的软件交付流程。而原来基于关系型数据库的开发框架,遇到了一定的挑战。软件开发前期,需要较高的设计建模、沟通成本;后期软件版本迭代中,频繁的数据模型变更,也引入了大量的维护成本。例如:向生产系统的大表添加字段时,其产生的业务影响和工作量,简直就是运维人员的噩梦。这样的开发效率和成本代价,越来越无法满足敏捷软件开发的要求。尤其对于依赖快速上线、快速部署的成长型公司、新兴业务,该过程甚至是无法接受的。
另一方面,随着云计算的发展和大数据时代的到来,企业的业务规模、数据体量急剧膨胀,在越来越多的应用场景中,传统关系数据库所采用集中式架构,其容量和性能不能按需扩展。尤其在支持具有互联网特征的海量数据、高并发相关场景时,这种局限更为显著,逐渐成为制约业务发展的瓶颈。
在这种背景下,非关系型数据库(NoS