数据库系统的性能和可伸缩性可以对任何项目产生重大影响。在许多情况下,开发人员必须从一个数据库系统迁移到另一个数据库系统,以提高数据库密集型应用程序的性能和操作速度。不仅如此,每个应用程序都会进行修改,以获得更好的用户体验,并引入新功能,对数据库存储的需求也会大大增加。如果您的应用程序的数据库系统没有提供健壮的可伸缩性功能,并且如果随着负载的增加性能受到影响,那么应用程序的受欢迎程度将受到影响。今天,让我们来比较两个最流行的数据库系统MS SQL Server和PostgreSQL的性能和可伸缩性因素。
性能-
并发性是决定数据库系统性能的一个重要因素。并发性是指多个进程可以同时访问和修改共享数据的特性。在每一个应用程序中,某些数据被运行的各种并发进程共享,数据的这种并发性可以是健壮的,数据库和应用程序的性能将是更快、更完美的。SQL Server的并发性不足,您肯定会在日志中得到各种锁定、阻止和死锁的报告。这会导致数据管理不当,应用程序的进程变得非常缓慢。相比之下,PostgreSQL具有更好的并发管理系统,并且由于其优化MVCC的特性,死锁的可能性更小。
与并发性一样,分区也是数据库系统的一大特性。分区是将大表分成小部分的过程。随着数据库大小,特别是表大小的增长,分区是很重要的。这有助于在访问分数数据而不是整个大表时提高性能。从可伸缩性的角度来看,分区也很重要。随着应用程序规模的增大,数据库会变得很大,如果不进行拆分,数据库会变得更大,访问数据将需要很多时间。至于SQL Server,有一个合适的分区特性,但是你必须购买这个特性作为附加组件,而在PostgreSQL中,你可以以更低的价格和更高的效率获得它。
技术更新的速度比以往任何时候都快。在这种情况下,SQL Server在几年后发布新版本的方法已经过时。PostgreSQL定期发布更新版本,并紧跟潮流,提供更快的性能。接下来,PostgreSQL的可索引函数特性将把数据库的性能提升到另一个级别。不仅如此,PostgreSQL还支持模块或扩展,您可以做很多SQL server无法做到的事情。由于缺乏正确的索引实现是SQL server,它们省略了一个最常用的变量系统array。
数据库系统的可伸缩性直接取决于数据的压缩能力。理想情况下,数据库系统必须具有先进的现成的压缩技术。在某些数据库系统中,开发人员必须手动压缩,不仅耗时而且效率低下。MS SQL Server提供了开箱即用的压缩,但您必须手动实现它。另一方面,PostgreSQL免费提供,整个过程是自动的。
在当今世界,应用程序必须是通用的。这意味着每个操作系统的人,无论是Windows、Linux、Mac还是其他什么,都应该可以访问应用程序。数据库系统也应该如此,这样开发人员可以根据自己的选择在任何操作系统上工作。由于SQL Server是微软的产品,它只能在Windows上运行,而拥有Mac或Linux的开发人员不能在它上工作。这是开发可伸缩性和灵活性方面的一个主要缺点。值得庆幸的是,PostgreSQL在每一个平台上都能工作,为开发人员开辟了一条新的途径。这也是将数据库从SQL Server迁移到PostgreSQL的主要原因之一,因为各种商业公司的开发人员都在基于Mac的计算机上开发应用程序。JSON和JavaScript统治着web世界,PostgreSQL支持JSON。您可以正确地同步客户机、服务器和数据库,但SQL server仍然停留在XML上。甚至PostgreSQL的数据类型也优于SQL server,克服了所有缺点,使PostgreSQL具有更好的性能和可扩展性。
PostgreSQL不仅与SQL Server的性能或可伸缩性相匹配,而且在多个参数上都明显优于sqlserver。就企业级而言,它的定价比SQL Server好,而且在PostgreSQL中有一些特性是免费的,而sqlserver对它们收费很高。
原文:
https://www.freelancinggig.com/blog/2018/05/30/does-postgresql-match-sql-server-in-terms-of-performance-and-scalability/
本文:
http://jiagoushi.pro/does-postgresql-match-sql-server-terms-performance-and-scalability
讨论:请加入知识星球【首席架构师圈】或者微信小号【jiagoushi_pro】