您当前的位置:首页 > 电脑百科 > 数据库 > 百科

PostgreSQL到底好不好?为什么互联网公司不敢用呢?

时间:2023-11-09 14:15:41  来源:今日头条  作者:从程序员到架构师
PostgreSQL到底好不好?为什么互联网公司不敢用呢?

 

之前呢!笔者在某平台上看了关于PostgreSQL相关的内容,并且看到下面评论中问到关于PostgreSQL这个数据库到底好不好用。那么下面我们就来聊聊关于PostgreSQL相关的内容,并且相比较于MySQL等一些数据到底有什么样的区别。

PostgreSQL的优势

PostgreSQL自称是目前为止最先进的关系型数据库,但是事实上,它不仅仅只是一个单纯的关系型的数据库。它其实还支持了一些非关系型数据的存储,也就是说它还支持了一些NoSQL的数据类型。例如用它可以实现KV键值对的存储,可以实现JSON数据的存储。

其实从本质上来讲,PostgreSQL才是真正的NoSQL,也就是Not Only SQL,不仅仅是SQL。这就是因为它不仅仅支持了关系型数据的存储,而且还支持了非关系型数据的存储,也就是说从另外一个角度上来讲,PostgreSQL其实可以理解为一个全栈类型的数据库。

那么什么是全栈呢?这里的全栈就是指它所能支持的使用场景比较的多,可以支持各种各样的扩展。

PostgreSQL到底好不好?为什么互联网公司不敢用呢?

 

上面我们提到,PostgreSQL所支持的数据类型非常的丰富,这样使得它所能适配的场景会比较多,另外一点就是它也是可以支持事务操作的,而且它还提供了非常丰富的数据分析工具,虽然定位是一个对象关系数据库,但是它对于一些SQL结构化查询的支持也是非常好的。在有些方面的SQL操作的支持要比MySQL要更加的丰富,包括对于子查询、窗口函数等的支持。

PostgreSQL还支持了时序数据存储、地理位置信息的存储、数据仓库等PG都提供了它对应的解决方案。而且想必很多人也对其很多支持的高可用实现方案有所了解。例如PostgreSQL它也支持高可用集群部署方案,并且支持副本的冗余、也支持内存主从同步机制,它内置的基于二进制的同步复制方式在大部分情况下,比MySQL所支持的基于binlog的同步方式可能更加可靠。

PostgreSQL到底好不好?为什么互联网公司不敢用呢?

 

另外就是PostgreSQL是它所支持的开源协议是BSD,也就是说它的开发的自由度会比较高,我们甚至可以基于PostgreSQL可以进行一些二次开发,并且二次开发的产品也可以变成自己的商业产品,国内有很多的数据仓库都是基于它来进行的二次开发,所以很多云原生的关系型数据库基本上都与它有着或多或少的联系,这也是PostgreSQL社区一直非常活跃的原因之一。

扩展性

PostgreSQL的扩展性也是比较强的,它是基于目录驱动进行的扩展。可以非常灵活的在其中添加一些数据类型、操作方式、以及内置函数等等。这过程也是非常弹性的也就是说你用的时候可以将它加上,不用的时候删除就可以了,不需要进行多余的编译加载的操作。这也是PostgreSQL为什么可以支持去自定义一些新的数据类型的原因。

与MySQL的差异

MySQL是基于GPLv2开源协议,虽然社区活跃度也不低,但是它背后毕竟是甲骨文,所以说商业化程度其实并不是太高。

PostgreSQL到底好不好?为什么互联网公司不敢用呢?

 

MySQL支持了很多的存储引擎,除了InnoDB和NDB之外,其他的引擎都不支持事务操作。像是PostgreSQL的话它就只有一个存储引擎,所以直接就是支持事务的。虽然这种方式可以省去你选择的麻烦,但是所带来的问题就是无法进行合理的均衡设计,但是从另一个方面来讲,既然支持了,就一定会考虑性能,但是它在某些场景中,例如遇到一些小数据量的读写,可能就比不过MySQL所支持的一些其他的存储引擎了。

PostgreSQL对于SQL语句的兼容性要比MySQL要更好一些,像是对于一些子查询的支持,对于联表查询等PostgreSQL的性能要比MySQL要更好一些。

PostgreSQL到底好不好?为什么互联网公司不敢用呢?

 

PostgreSQL对于客户端程序的支持,要比MySQL支持的要更丰富。

PostgreSQL对于数据类型的支持也要比MySQL要更多一些。例如它可以用来存储一些JSON,XML格式的数据。对于这种数据的支持可能PostgreSQL要略胜于MySQL。这主要是因为PostgreSQL在操作一些并发读写的时候,会省略在MySQL中底层所支持的一些锁的操作。但是在对于数据量较小的情况下,MySQL会更加方便。这其实也是非常符合很多真实场景中所暴露出来的问题的。

PostgreSQL到底好不好?为什么互联网公司不敢用呢?

 

所以如果在某些实在是不方便进行分库分表的场景下,并且单个表的数据量比较大的情况下,并且还有很多复杂的查询操作的时候,可能使用PostgreSQL会更加好一些。但是需要注意,在一些并发场景下由于MySQL的操作会进行一些底层处理,在内存消耗方面要比PostgreSQL要小,这是因为PostgreSQL是基于进程进行的处理,也就是说一个客户端对应一个进程,而在MySQL中一个请求只对应着一个线程。相比较而言,进程消耗的资源可能要比线程消耗的资源要大得多。所以并不是说PostgreSQL在处理这种场景就一定好,只是相对而言要比MySQL要性能更好,但是它需要一些其他的手段来保证这种性能优势。

PostgreSQL到底好不好?为什么互联网公司不敢用呢?

 

在很早之前就有人扬言PostgreSQL的性能已经完全碾压MySQL了,但是MySQL人家又不是没有在发展变化,所以说MySQL在不断的升级迭代的过程中对性能上的提升也是有目共睹的。

到底要不要使用PostgreSQL

要不要使用PostgreSQL还是要根据实际的使用场景来决定?第一,就是你要开发的系统是一个新的系统,第二,就是老系统是否需要使用PostgreSQL来进行迭代。

这就要看后续的开发场景了,如果后续的开发过程中可能会遇到一些非结构化的存储,或者是会存储一些KV数据,存储一些地理位置信息,存储一些带有时序性的数据,那么对于这些数据的存储,就要考虑是否使用PostgreSQL了。

当然这种数据也可以使用MySQL来进行存储,但是有一点,能用不代表好用。反过来也是一样的。PostgreSQL所支持的有些操作,在对于一些数据的处理上来讲,也或许没有MySQL更加好用。

毕竟专业的数据存储还是要专业的数据库来进行支持的么。

另外需要注意的就是PostgreSQL只支持了一个存储引擎,所以对于运维这方面的要求还是比较高的。如果团队里面没有对PostgreSQL非常精通的DBA的话建议还是不要使用了。因为数据这种东西,毕竟是会影响很多的东西的,基本上属于各个公司的核心数据资产,一旦丢失后果非常严重。

总结

考虑到以上这些内容,你就要看看新项目中是否使用PostgreSQL数据库,并且老项目中是否需要对数据库这方面进行迭代升级,对于这一点,笔者还是不太建议老项目进行迭代。因为你无法保证项目就一定合适,也无法保证数据就一定支持。



Tags:PostgreSQL   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
快速上手 PostgreSQL:掌握PSQL 命令行工具连接技巧
当涉及到使用 PostgreSQL 数据库时,psql 是一个强大且常用的命令行工具。它提供了与 PostgreSQL 数据库进行交互的功能,允许你执行 SQL 查询、管理数据库对象、导入和导出数据...【详细内容】
2023-12-14  Search: PostgreSQL  点击:(152)  评论:(0)  加入收藏
为何在中国 MySQL 远比 PostgreSQL 流行?
首先在全球范围内,MySQL 一直是领先于 PostgreSQL (下文简称 PG) 的。下图是 DB-Engines 的趋势图,虽然 PG 是近 10 年增长最快的数据库,但 MySQL 依然保持着优势。再来看一下...【详细内容】
2023-12-11  Search: PostgreSQL  点击:(194)  评论:(0)  加入收藏
数据库迁移:从 SQL Server 到 PostgreSQL
作者 | 何蔚一、背景在这个数字化时代,企业的复杂业务逻辑运转需要依赖复杂的业务服务来完成。这些业务服务通常会经历变更、拆分、合并和上云等过程,最终与一些商业软件和云...【详细内容】
2023-11-29  Search: PostgreSQL  点击:(235)  评论:(0)  加入收藏
PostgreSQL到底好不好?为什么互联网公司不敢用呢?
之前呢!笔者在某平台上看了关于PostgreSQL相关的内容,并且看到下面评论中问到关于PostgreSQL这个数据库到底好不好用。那么下面我们就来聊聊关于PostgreSQL相关的内容,并且相...【详细内容】
2023-11-09  Search: PostgreSQL  点击:(276)  评论:(0)  加入收藏
今天测试一下 1 亿条数据,MySQL 和 PostgreSQL 的性能表现
今天测试一下 1 亿条数据,MySQL 和 PostgreSQL 的性能表现。说明下,只是做一些基本的测试,并没有用一些数据库 Benchmark 工具进行测试。准备建表语句:CREATE TABLE user_mysql...【详细内容】
2023-09-28  Search: PostgreSQL  点击:(349)  评论:(0)  加入收藏
十分钟掌握Doris,超越Hive、Elasticsearch和PostgreSQL
以前,数据仓库通常由Apache Hive、MySQL、Elasticsearch和PostgreSQL组成。它们支持数据仓库的数据计算和数据存储层: 数据计算:Apache Hive作为计算引擎。 数据存储:MySQL为Dat...【详细内容】
2023-09-27  Search: PostgreSQL  点击:(223)  评论:(0)  加入收藏
centos7 下安装PostgreSQL 及timescaledb 的过程
前期准备先删除现有的PostgreSQL 比如13使用 sudo yum remove postgresql13-server postgresql13-contrib 该命令将会删除安装包及其依赖项。卸载完成后,为了确保 PostgreSQ...【详细内容】
2023-09-26  Search: PostgreSQL  点击:(451)  评论:(0)  加入收藏
PostgreSQL vs MySQL - 1000万数据批量插入,谁能略胜一筹
之前测试MySQL批量插入,发现慢的离谱,找了下原因,竟然是少了个参数,rewriteBatchedStatements=true。昨天《PostgreSQL vs MySQL - 30倍性能差异》这个原因也找到了,汗颜。rewri...【详细内容】
2023-09-25  Search: PostgreSQL  点击:(341)  评论:(0)  加入收藏
为什么越来越多的人选择PostgreSQL,放弃了MySQL
2023年Stack Overflow 调查显示,Postgres 已经取代 MySQL 成为第一名,成为最受欢迎的数据库。虽然这是国外统计,在中国应该还是MySQL更有广泛度,但足以说明问题,PostgreSQL的市场...【详细内容】
2023-09-15  Search: PostgreSQL  点击:(300)  评论:(0)  加入收藏
如何迁移一个 3TB 的 PostgreSQL 数据库数据
【CSDN 编者按】这篇文章分享了作者作为一位全栈开发者,在三周内将一个 3TB 的 PostgreSQL 数据库从 AWS 迁移到 Azure DevOps 的过程和经验,以及遇到的挑战和解决方案。原文...【详细内容】
2023-09-04  Search: PostgreSQL  点击:(284)  评论:(0)  加入收藏
▌简易百科推荐
向量数据库落地实践
本文基于京东内部向量数据库vearch进行实践。Vearch 是对大规模深度学习向量进行高性能相似搜索的弹性分布式系统。详见: https://github.com/vearch/zh_docs/blob/v3.3.X/do...【详细内容】
2024-04-03  京东云开发者    Tags:向量数据库   点击:(4)  评论:(0)  加入收藏
原来 SQL 函数是可以内联的!
介绍在某些情况下,SQL 函数(即指定LANGUAGE SQL)会将其函数体内联到调用它的查询中,而不是直接调用。这可以带来显著的性能提升,因为函数体可以暴露给调用查询的规划器,从而规划器...【详细内容】
2024-04-03  红石PG  微信公众号  Tags:SQL 函数   点击:(3)  评论:(0)  加入收藏
如何正确选择NoSQL数据库
译者 | 陈峻审校 | 重楼Allied Market Research最近发布的一份报告指出,业界对于NoSQL数据库的需求正在持续上升。2022年,全球NoSQL市场的销售额已达73亿美元,预计到2032年将达...【详细内容】
2024-03-28    51CTO  Tags:NoSQL   点击:(13)  评论:(0)  加入收藏
为什么数据库连接池不采用 IO 多路复用?
这是一个非常好的问题。IO多路复用被视为是非常好的性能助力器。但是一般我们在使用DB时,还是经常性采用c3p0,tomcat connection pool等技术来与DB连接,哪怕整个程序已经变成以...【详细内容】
2024-03-27  dbaplus社群    Tags:数据库连接池   点击:(12)  评论:(0)  加入收藏
八个常见的数据可视化错误以及如何避免它们
在当今以数据驱动为主导的世界里,清晰且具有洞察力的数据可视化至关重要。然而,在创建数据可视化时很容易犯错误,这可能导致对数据的错误解读。本文将探讨一些常见的糟糕数据可...【详细内容】
2024-03-26  DeepHub IMBA  微信公众号  Tags:数据可视化   点击:(6)  评论:(0)  加入收藏
到底有没有必要分库分表,如何考量的
关于是否需要进行分库分表,可以根据以下考量因素来决定: 数据量和负载:如果数据量巨大且负载压力较大,单一库单一表可能无法满足性能需求,考虑分库分表。 数据增长:预估数据增长...【详细内容】
2024-03-20  码上遇见你  微信公众号  Tags:分库分表   点击:(13)  评论:(0)  加入收藏
在 SQL 中写了 in 和 not in,技术总监说要炒了我……
WHY?IN 和 NOT IN 是比较常用的关键字,为什么要尽量避免呢?1、效率低项目中遇到这么个情况:t1表 和 t2表 都是150w条数据,600M的样子,都不算大。但是这样一句查询 ↓select *...【详细内容】
2024-03-18  dbaplus社群    Tags:SQL   点击:(5)  评论:(0)  加入收藏
应对慢SQL的致胜法宝:7大实例剖析+优化原则
大促备战,最大的隐患项之一就是慢SQL,对于服务平稳运行带来的破坏性最大,也是日常工作中经常带来整个应用抖动的最大隐患,在日常开发中如何避免出现慢SQL,出现了慢SQL应该按照什...【详细内容】
2024-03-14  京东云开发者    Tags:慢SQL   点击:(4)  评论:(0)  加入收藏
过去一年,我看到了数据库领域的十大发展趋势
作者 | 朱洁策划 | 李冬梅过去一年,行业信心跌至冰点2022 年中,红衫的一篇《适应与忍耐》的报告,对公司经营提出了预警,让各个公司保持现金流,重整团队,想办法增加盈利。这篇报告...【详细内容】
2024-03-12    InfoQ  Tags:数据库   点击:(26)  评论:(0)  加入收藏
SQL优化的七个方法,你会哪个?
一、插入数据优化 普通插入:在平时我们执行insert语句的时候,可能都是一条一条数据插入进去的,就像下面这样。INSERT INTO `department` VALUES(1, '研发部(RD)', &#39...【详细内容】
2024-03-07  程序员恰恰  微信公众号  Tags:SQL优化   点击:(19)  评论:(0)  加入收藏
站内最新
站内热门
站内头条