pg数据库收费吗

pg数据库收费吗,第1张

免费
PostgreSQL是完全免费的,如果有下载完观察的比较仔细的小伙伴会发现自己打开PostgreSQL数据库的时候会出现一段话,大概的意思就是因为PostgreSQL的实验性,它能免费地被使用、修改、分发用于任何用途。所以,商用也是免费的。
查看更多

你问的是如何解决PG数据库select值过多的问题吗?
如果 select in 中包含的项过多,会严重影响程序的性能,注意 'admin,test' 为一个完整的字符串,而不是 'admin','test'就可以解决。
pg数据库是针对事务型企业应用的严肃、功能完善的数据库,支持强ACID特性和很多数据完整性检查。

PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS), 也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统。有些特性甚至连商业数据库都不具备。这个起源于伯克利(BSD)的数据库研究计划目前已经衍生成一项国际开发项目, 并且有非常广泛的用户。
PostgreSQL 可以说是最富特色的自由数据库管理系统,甚至我们也可以说是最强大的自由软件数据库管理系统。事实上, PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备, 比如 IP 类型和几何类型等;其次,PostgreSQL 是全功能的自由软件数据库,很长时间以来,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。直到最近才有 Inprise 的 InterBase 以及 SAP 等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。

特性 MySQL PostgreSQL
实例 通过执行 MySQL 命令(mysqld)启动实例。一个实例可以管理一个或多个数据库。一台服务器可以运行多个 mysqld 实例。一个实例管理器可以监视 mysqld 的各个实例。
通过执行 Postmaster 进程(pg_ctl)启动实例。一个实例可以管理一个或多个数据库,这些数据库组成一个集群。集群是磁盘上的一个区域,这个区域在安装时初始化并由一个目录组成,所有数据都存储在这个目录中。使用 initdb 创建第一个数据库。一台机器上可以启动多个实例。
数据库 数据库是命名的对象集合,是与实例中的其他数据库分离的实体。一个 MySQL 实例中的所有数据库共享同一个系统编目。 数据库是命名的对象集合,每个数据库是与其他数据库分离的实体。每个数据库有自己的系统编目,但是所有数据库共享 pg_databases。
数据缓冲区 通过 innodb_buffer_pool_size 配置参数设置数据缓冲区。这个参数是内存缓冲区的字节数,InnoDB 使用这个缓冲区来缓存表的数据和索引。在专用的数据库服务器上,这个参数最高可以设置为机器物理内存量的 80%。 Shared_buffers 缓存。在默认情况下分配 64 个缓冲区。默认的块大小是 8K。可以通过设置 postgresqlconf 文件中的 shared_buffers 参数来更新缓冲区缓存。
数据库连接 客户机使用 CONNECT 或 USE 语句连接数据库,这时要指定数据库名,还可以指定用户 id 和密码。使用角色管理数据库中的用户和用户组。 客户机使用 connect 语句连接数据库,这时要指定数据库名,还可以指定用户 id 和密码。使用角色管理数据库中的用户和用户组。
身份验证 MySQL 在数据库级管理身份验证。 基本只支持密码认证。 PostgreSQL 支持丰富的认证方法:信任认证、口令认证、Kerberos 认证、基于 Ident 的认证、LDAP 认证、PAM 认证
加密 可以在表级指定密码来对数据进行加密。还可以使用 AES_ENCRYPT 和 AES_DECRYPT 函数对列数据进行加密和解密。可以通过 SSL 连接实现网络加密。 可以使用 pgcrypto 库中的函数对列进行加密/解密。可以通过 SSL 连接实现网络加密。
审计 可以对 querylog 执行 grep。 可以在表上使用 PL/pgSQL 触发器来进行审计。
查询解释 使用 EXPLAIN 命令查看查询的解释计划。 使用 EXPLAIN 命令查看查询的解释计划。
备份、恢复和日志 InnoDB 使用写前(write-ahead)日志记录。支持在线和离线完全备份以及崩溃和事务恢复。需要第三方软件才能支持热备份。 在数据目录的一个子目录中维护写前日志。支持在线和离线完全备份以及崩溃、时间点和事务恢复。 可以支持热备份。
JDBC 驱动程序 可以从 参考资料 下载 JDBC 驱动程序。 可以从 参考资料 下载 JDBC 驱动程序。
表类型 取决于存储引擎。例如,NDB 存储引擎支持分区表,内存引擎支持内存表。 支持临时表、常规表以及范围和列表类型的分区表。不支持哈希分区表。 由于PostgreSQL的表分区是通过表继承和规则系统完成了,所以可以实现更复杂的分区方式。
索引类型 取决于存储引擎。MyISAM:BTREE,InnoDB:BTREE。 支持 B-树、哈希、R-树和 Gist 索引。
约束 支持主键、外键、惟一和非空约束。对检查约束进行解析,但是不强制实施。 支持主键、外键、惟一、非空和检查约束。
存储过程和用户定义函数 支持 CREATE PROCEDURE 和 CREATE FUNCTION 语句。存储过程可以用 SQL 和 C++ 编写。用户定义函数可以用 SQL、C 和 C++ 编写。 没有单独的存储过程,都是通过函数实现的。用户定义函数可以用 PL/pgSQL(专用的过程语言)、PL/Tcl、PL/Perl、PL/Python 、SQL 和 C 编写。
触发器 支持行前触发器、行后触发器和语句触发器,触发器语句用过程语言复合语句编写。 支持行前触发器、行后触发器和语句触发器,触发器过程用 C 编写。
系统配置文件 myconf Postgresqlconf
数据库配置 myconf Postgresqlconf
客户机连接文件 myconf pg_hbaconf
XML 支持 有限的 XML 支持。 有限的 XML 支持。
数据访问和管理服务器 OPTIMIZE TABLE —— 回收未使用的空间并消除数据文件的碎片
myisamchk -analyze —— 更新查询优化器所使用的统计数据(MyISAM 存储引擎)
mysql —— 命令行工具
MySQL Administrator —— 客户机 GUI 工具 Vacuum —— 回收未使用的空间
Analyze —— 更新查询优化器所使用的统计数据
psql —— 命令行工具
pgAdmin —— 客户机 GUI 工具
并发控制 支持表级和行级锁。InnoDB 存储引擎支持 READ_COMMITTED、READ_UNCOMMITTED、REPEATABLE_READ 和 SERIALIZABLE。使用 SET TRANSACTION ISOLATION LEVEL 语句在事务级设置隔离级别。 支持表级和行级锁。支持的 ANSI 隔离级别是 Read Committed(默认 —— 能看到查询启动时数据库的快照)和 Serialization(与 Repeatable Read 相似 —— 只能看到在事务启动之前提交的结果)。使用 SET TRANSACTION 语句在事务级设置隔离级别。使用 SET SESSION 在会话级进行设置。
MySQL相对于PostgreSQL的劣势:
MySQL
PostgreSQL

最重要的引擎InnoDB很早就由Oracle公司控制。目前整个MySQL数据库都由Oracle控制。
BSD协议,没有被大公司垄断。

对复杂查询的处理较弱,查询优化器不够成熟
很强大的查询优化器,支持很复杂的查询处理。

只有一种表连接类型:嵌套循环连接(nested-loop),不支持排序-合并连接(sort-merge join)与散列连接(hash join)。
都支持

海内外数据库在部分场景上的性能差距还比较大,难以做进核心业务系统。比如说在RAC(实时应用集群)这块,数据量大、并发量大、变化速度快,国内所有的数据库厂商做的都不如Oracle好,其他如果说兼容性、安全机制等方面国产数据库其实没什么问题,所以国产数据库应用在一些小的边缘业务系统上是没什么问题的,但核心业务系统上还是很难的。现在国家要求金融行业全替换,也是针对办公系统的数据库全替换,在业务系统层面更多的是在小业务系统上做做实验,现在去谈核心业务系统的数据库国产化还为时尚早。
国产数据库厂商要先争取拿到小业务系统的备份系统机会,不要急着喊“国产替代”。存在即合理,Oracle、IBM DB2现在能在金融等行业广泛使用,客户还要接着续购,一定是有原因的。但如果客户愿意在小业务系统上试用国产数据库,那国产数据库厂商可以从备选系统的国产化上先入手。也就是以前的业务系统和海外数据库继续作为主系统使用,在旁边用国产数据库搭一个备选系统来应用,两个系统同时跑看看有没有问题;如果跑一段时间没问题的话就把两个系统切换一下,用国产当主应用,海外当备应用继续跑;这样跑一段还没问题的话,再切回最初的样子,以后两个系统就一直跑下去了;未来一旦海外的主系统出现问题的时候,20s内会自动切换到国产备系统上运行。
做这样的工作并不是一刀切的“国产替代”,只是在海外产品旁边预备一个国产数据库,就足够让国产数据库成长起来。对于客户来说,一方面备选系统采购国产数据库满足了国家对国产化的考核要求,另一方面海外的产品还能维持不动继续使用,满足业务的安全性和稳定性,而且备系统用国产也比主备都用海外产品的开销更低,降低成本压力。
信创环境下国产数据库价格战激烈,厂商生存压力大。由于性能上确实和海外有较大差距,本身国产数据库厂商在信创投标时价格就会报低一点,Oracle的分析型数据库过去在央采里卖三四十万一套,而国产数据库在信创上报价就只报十几万一套,中标价折扣加上集成商一分到手也就五万块,客户采购数量一多再打个折就只能三四万块一套,后续还要去做三年的运维实施,成本压力很大。
国产数据库非良性的竞争下价格越来越低,最后每家公司当年挣的钱只能够支撑当年的运营,如果拿不到项目挣不了钱就难以继续运营,在这种情况下必须要保证当年有钱挣,不管项目是挣多还是挣少,只要有收入就干,有项目发标就去低价抢。这种过度的低价竞争下如果厂商单卖数据库一款产品目前很难实现盈利,也逼退了像华为这样的公司在信创数据库市场的发力,因为投入产出比达不到公司的预期。
另一方面就是跑马圈地现象严重。20年作为信创规模化采购的第一年,厂商都想先占坑抓住客户,所以就降价竞争,有些厂商甚至签的是五年的长期运维合同,这意味着未来五年都是一个低价运维的状态,但一个很核心的问题是后续的业务系统替换国产数据库厂商到底能不能搞定?如果搞定不了,那其实之后是不会有新的利润点出来的,现在占的坑也是白占。
国产信创数据库市场正处于发展早期。根据我们的产业调研,2020年党政信创电子公文系统的数据库市场几乎被人大金仓和达梦瓜分,我们估计二者合计约6个亿收入。目前信创数据库的市场机会在于党政信创电子公文系统的持续替换以及各大央企的OA办公系统的全替换,今年金融、能源、电信等重要行业在信创政策的驱动下已经开始在OA系统和小业务系统上进行国产信创数据库的测试。后续如果信创数据库的试用表现良好,国产数据库将在电子政务系统和重要行业的业务系统上迎来更大的市场发展机会。
过去有些行业客户直接使用开源数据库,之后可能转去采购商业发行版数据库,这也是国产数据库厂商的机遇。根据我们的产业调研,过去我国自然资源行业60%的地理信息系统公司都在使用PG开源数据库,他们自己养十几个人的IT团队去写、去维护自己的PG数据库,但随着国家监管政策的加强,继续使用自研的数据库是需要去进行一系列的测评并拿到相应的证书,客户进行数据库投入的成本会越来越大,而且随着技术的迭代,跟上开源进步的节奏难度也在加大,在第三方专业的数据库厂商发展壮大之后,客户会更愿意去采购商业发行版数据库,这样也能降低自己的成本,让自己更专注于地理信息系统的研发,像超图软件、航天宏图这样的上市公司已经开始与第三方数据库厂商进行兼容性测试,对于走PG技术路线的数据库厂商来说可以无缝兼容,这块未来会成为一个重要的业务拓展场景。
综上所述,当前信创政策的启动为国产信创数据库带来了难得的市场机会,国家投入了大量的人力和财力去推动信创环境的适配工作,客户也给了国产数据库厂商去做到业务系统中的机会,都是希望国产数据库能够逐步发展壮大。但由于数据库技术壁垒高,且直接关系到客户业务系统运行的稳定性,目前国产数据库性能相比海外还有较大差距,还很难做进核心业务系统中,这是产业发展的正常现象。
国产数据库厂商应该抓住政策机遇和客户的信任,多跑客户做案例落地试用,少去论坛空谈技术前景;从小系统的备份先做起,不要急于在核心系统上做一刀切的“替换”,在小系统上经过长时间的验证后再去考虑切入核心场景;加强产业自律与合作,避免过度的价格战对产业长期发展带来伤害,将战略重心放在产品性能和竞争力的提升上。数据库行业没有弯道超车,只有脚踏实地的发展,数据库的国产化会是一个漫长的过程,我们认为在政策和庞大国内市场的培育下,未来十年有望成长出一批具备国际竞争力的优秀国产数据库厂商。

pg数据库连接超时是未能正确连接。根据查询相关资料信息,未能正确配置PG数据库连接参数、数据库服务器宕机或网络问题会导致pg数据库连接超时。建议检查一下数据库连接参数和网络是否正常,如果这些都没有问题,可以试试重新启动PG数据库服务。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13389497.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-26
下一篇 2023-07-26

发表评论

登录后才能评论

评论列表(0条)

保存