开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共800人左右 1 + 2)。
EnterpriseDB(EDB)提供企业级软件和服务,使组织能够充分利用流行的开源数据库Postgres的全部功能。EDB对最新Postgres 15版本的贡献,尤其是引入MERGE SQL命令,展示了该公司对Postgres社区的持续承诺和对Postgres创新的投入。
EDB的新发布版本,针对PostgreSQL 15.1的EDB工具和扩展发行版(EDB PG 15),使企业更容易将Postgres部署为其企业数据库标准。此版本中新增的扩展和工具数量最多,帮助企业使用最新版本的PostgreSQL构建新的现代应用程序。
通过EDB PG 15,EDB支持在企业想要部署的任何位置使用PostgreSQL 15.1,无论是自主管理还是与EDB BigAnimal全面管理。EDB PG 15发布版还支持EDB Postgres for Kubernetes,它利用CloudNativePG提供基础架构的现代化速度、效率和保护。
EDB PG 15中有三个显著的功能进一步扩展了开源Postgres数据库。它们是EDB Advanced Storage Pack、EDB Postgres Tuner和EDB LDAP Sync。让我们来看一下。
EDB 提供了专业的存储包 (注意这点,在之前视频翻译关于PG的存储开发者提到了在存储部分的问题和弱点)
由引用数据存储优化和自动聚类存储优化组成,EDB Advanced Storage Pack为集群数据提供更快的访问,并增加外键关系的性能和可扩展性。
EDB发布了其首个两个平台不可知的存储引擎,或者在PostgreSQL中称为表格访问方法(TAMs)。根据不同的用例,这些存储引擎旨在优化磁盘上的数据存储和访问方式。不需要专门的硬件,在您运行自己的服务器或公共云中,都可以实现优化。这些TAM作为数据库的扩展程序提供,并且EDB客户可以在社区PostgreSQL和EDB Postgres Advanced Server上利用它们。
EDB Auto Cluster和EDB Ref Data是发布的前两个TAM,分别加速对集群数据的访问并优化外键关系。EDB正在开发更多的TAM,以优化IoT、审计、数据记录以及事件和流程数据工作负载的摄入和存储。与EDB Auto Cluster和EDB Ref Data一样,这些未来的扩展不需要特殊的硬件或特定的云提供商。
EDB Auto Cluster TAM跟踪任何侧表中最后插入的行的值。这使得新行可以添加到与先前行相同的数据块中,从而保持数据集群,并减少访问相关数据的时间。
一个示例用例是交易表,应用程序访问模式为检索给定股票符号的所有交易。在这种情况下,Auto Cluster TAM可用于将插入存储在数据库的同一位置中。这将需要访问较少的页面来检索所有交易,从而更有效地使用数据库页面缓存,并更快地将结果从数据库传递给应用程序。
下面是独立性能工程团队在EDB中突出显示的查询的执行计划,带有和不带有使用Auto Cluster TAM 差距(在执行之前清除系统缓存)。
以下为例子:EDB 的POSTGRESQL 在执行语句后的执行计划
Limit (cost=27058.18..27058.43 rows=100 width=49) (actual time=67.934..67.952 rows=100 loops=1)
Buffers: shared hit=6 read=77
-> Sort (cost=27058.18..27115.67 rows=22996 width=49) (actual time=67.932..67.942 rows=100 loops=1)
Sort Key: size DESC
Sort Method: top-N heapsort Memory: 48kB
Buffers: shared hit=6 read=77
-> Index Scan using i_file_user on file (cost=0.57..26179.28 rows=22996 width=49) (actual time=3.384..67.095 rows=5884 loops=1)
Index Cond: ("user" = 667)
Buffers: shared hit=3 read=77
Planning:
Buffers: shared hit=103 read=19
Planning Time: 10.887 ms
Execution Time: 68.836 ms
普通的POSTGRESQL 开源数据库
Limit (cost=7216.82..7217.07 rows=100 width=49) (actual time=3071.083..3071.104 rows=100 loops=1)
Buffers: shared hit=7 read=6059
-> Sort (cost=7216.82..7232.15 rows=6134 width=49) (actual time=3071.081..3071.094 rows=100 loops=1)
Sort Key: size DESC
Sort Method: top-N heapsort Memory: 49kB
Buffers: shared hit=7 read=6059
-> Index Scan using i_file_user on file (cost=0.57..6982.38 rows=6134 width=49) (actual time=3.800..3068.449 rows=5988 loops=1)
Index Cond: ("user" = 667)
Buffers: shared hit=4 read=6059
Planning:
Buffers: shared hit=110 read=17
Planning Time: 8.473 ms
Execution Time: 3071.149 ms
两个执行计划是相同的。在索引扫描返回的行数上有轻微的差异(约为1.74%),但是我们可以看到缓冲区读取方面的巨大差异:77与6059。使用Auto Cluster时,执行时间减少了97.7%。这是EDB Ref Data在实践中的工作示例。
EDB Postgres Tuner利用超过15年的EDB Postgres调优经验,为用户提供自动建议,从而提高性能。
15年来,EDB一直支持在关键任务环境中运行Postgres的客户。EDB的性能工程团队进行了各种各样的实际性能测试,这些测试反馈到EDB Support向客户提供的建议、增强核心数据库服务器的想法以及像Harnessing Shared Buffers(并获得性能好处)这样的性能深度分析。
通过EDB Postgres Tuner,EDB将这些经验、支持和性能研究大部分交付给EDB客户作为扩展程序。Postgres具有近350个配置参数,虽然大多数很少需要调整,但是其中一些直接影响数据库的性能和在多年数据更改后保持数据库的最佳运行能力。此扩展程序将大大减少DBA在调整PostgreSQL方面的开销。
EDB已将不同类别的配置参数分离开来,例如仅在系统硬件更改时才会发生更改的静态参数,以及根据使用EDB开发的算法在数据库中的活动变化的动态配置参数。
EDB Postgres Tuner使您可以自动应用调整建议,或查看调整建议并选择性地应用它们。在具有工作负载变化的繁忙系统上,可能会给出更好的建议。例如,像checkpoint_completion_target这样的Postgres参数将始终具有相同的建议,以确保一致的I/O。相比之下,max_wal_size参数在保持检查点定时运行而不耗尽磁盘空间之间取得平衡。这两个因素需要详细描述数据库服务器的最新状态,如EDB关于调整max_wal_size的文章所述。
正如该文章所指出的,max_wal_size对性能有深远的影响。有了EDB Postgres Tuner,现在可以针对Postgres运行最多写入工作负载,而无需了解max_wal_size等影响性能的参数的详细信息。
在EDB PG 15之后,EDB的下一个重大版本将于2023年初推出,涵盖EDB Postgres Advanced Server(EPAS)和EDB Postgres Distributed。此版本将包括透明数据加密(TDE),这是一个备受欢迎的安全功能,它在数据库级别加密数据,使DBA完全控制。TDE可以帮助保护机密数据和其他云数据资产免受意外泄露和缺乏必要解密密钥的威胁行为者的未经授权访问。对于加速其云旅程的大型企业来说,这个安全功能将尤为有益。
作为Postgres和Postgres社区的主要贡献者之一,EDB致力于推动技术创新。通过EDB PG 15,扩展数据库的新产品和能力将支持企业在任何想使用Postgres的地方。
本篇的主要想说明的和印证的是,POSTGRESQL 是一个非常好的开源数据库,他的不完美不一定是本身的原因,也有可能是经济因素,或其他我们明白和不能说明白的原因导致的,如果你觉得PG的开源版本满足不了你的需求,看看商业版的PG。