NoSQL和关系型数据库,十年之前的竞争之路!

 
叶正盛,玖章算术CEO,NineData创始人,曾担任阿里云数据库产品管理与解决方案部总经理,是阿里巴巴去IOE、异地多活、云计算多次技术变革的核心技术专家。
视频号来源 | 大圣聊数据库
以下文章根据视频内容整理
 
互联网高速发展下的系统瓶颈
 

大家好,今天我们来回顾一下十几年前的历史,那个时候,NoSQL和关系型数据库进行了一场激烈的竞争。我们都知道,互联网用户的快速增长给关系型数据库带来了巨大的挑战,特别是像Facebook和淘宝这样的网站,它们的IT系统压力急剧增大。

 

十年之前,NoSQL和关系型数据库开始了激烈竞争!
在这个核心的IT系统中,应用服务器和数据库服务器起着至关重要的作用。在当时,解决应用服务器的扩容问题相对较为简单,通过负载均衡就可以实现。然而,数据库服务器采用的是集中式架构,只能通过提升CPU性能、增加内存和硬盘容量来满足需求。在这其中,磁盘IOPS成为了数据库的主要瓶颈。
NoSQL突破瓶颈

为了解决这个问题,一些公司选择购买高端存储设备,如EMC,来支撑业务发展。然而,由于互联网用户增长过快,这种高端存储设备的支持能力也只能维持两三年。因此,很多IT专家得出结论,集中式数据架构难以满足未来互联网的发展需求,于是开始思考如何解决分布式架构下的业务需求。

NoSQL,泛指非关系型的数据库

构建分布式数据架构的一个主要难点是如何处理复杂的SQL逻辑。当时有很多人认为,在数据层面很难实现SQL逻辑,因为它限制了系统的可扩展性。因此,大家开始考虑将SQL逻辑放在业务层面来处理,而底层的数据库则支持更简单的Key-Value结构。这也是NoSQL最早诞生的基本假设。AWS Dynamo、HBase、MongoDB等约十多种NoSQL数据库相继诞生,确实解决了许多互联网高并发场景的需求。
谁拯救了关系型数据库?

然而,硬件方面也发生了巨大的变化。现如今,多核CPU、大容量内存以及固态硬盘(SSD)的发展成熟,让关系型数据库面临了新的机遇。相较传统机械硬盘,每秒只能处理一两百个I/O请求的情况,SSD固态硬盘每秒可以做到几千甚至上万上十万个IOPS,相当于一块SSD硬盘能够代替上百块机械硬盘。这使得磁盘IOPS性能不再是一个主要问题,因此,关系型数据库主要采用SSD硬盘来缓解性能和容量问题。

SSD硬盘,可以缓解关系型数据库性能和容量问题

另一方面,NoSQL由于其需要在业务层面实现许多逻辑,导致开发者工作量巨大,所以很多系统仍然依赖关系型数据库来支撑核心业务。可以看到,SSD的应用确实让关系型数据库能够解决许多复杂的需求,而NoSQL则在一些特定场景下展示了其优势,比如Redis在缓存领域的卓越表现以及MongoDB在文档和分布式扩展方面的成功应用。

此外,还有一些混合了NoSQL和关系型数据库特点的新型数据库,被称为NewSQL,本质上是分布式关系型数据库,结合了分布式扩展和SQL逻辑表达的优势,在更多的场景中发挥着重要作用。

NewSQL,结合了分布式扩展和SQL逻辑表达的优势

 

正如软件和硬件一直在互相交替发展,作为IT技术人员,我们需要持续关注行业发展趋势,为未来的IT架构奠定更好的基础。好的,今天的分享就到这里。我认为,SSD的应用大大提升了关系型数据库的竞争力,使其依然拥有强大的生命力。

 

欢迎大家评论!