
在今天,几乎每个软件或 *** 应用都需要一个后台。每秒发生的交易量的增加和存储的TB级数据需要一个稳定和灵活的框架来容纳和提供这些数据。
当然,对于初创企业来说,成本问题也是一个问题。但是,如果我们告诉你,你可以免费访问甚至建立这个数据库,没有任何附加条件呢?
是的,你没听错–PostgreSQL数据库保证了我们上面提到的一切,包括一些额外的好处 在这篇文章中,我们将介绍PostgreSQL的各个方面,这些方面使它能够在快速发展的领域中站稳脚跟。

PostgreSQL标识 (图片来源: ))
是一个开源的、高度稳定的数据库系统,为SQL的不同功能提供支持,如外键、子查询、触发器和不同的用户定义的类型和功能。它进一步增强了SQL语言的功能,提供了一些细致地扩展和储备数据工作负载的功能。它主要用于为许多移动、 *** 、地理空间和分析应用程序存储数据。
我们将在本文中深入研究PostgreSQL的各个方面,在下一节中从它的关键功能开始。让我们开始工作吧。
与其他数据库相比,PostgreSQL数据库有几个关键特征,使其独特并广受青睐。目前,它是使用量第二大的数据库,仅次于MySQL。
让我们更详细地了解一下这些特点。
可靠性和符合标准
PostgreSQL为交易提供了真正的ACID语义,并且完全支持外键、连接、视图、触发器和存储过程,有许多不同的语言。它包括大多数SQL的数据类型,如INTEGER、VARCHAR、TIMESTAMP和BOOLEAN。它还支持二进制大型对象的存储,包括图片、视频或声音。它是可靠的,因为它有一个大型的内置社区支持 *** 。PostgreSQL是一个容错的数据库,这要归功于它的写前日志。
扩展功能
PostgreSQL拥有几个强大的功能集,包括时间点恢复、多版本并发控制(MVCC)、表空间、细粒度访问控制、异步复制、精致的查询计划器/优化器和写前日志。多版本并发控制允许对表进行并发读写,只对同一行的并发更新进行阻塞。这样就可以避免冲突。
可扩展性
PostgreSQL支持Unicode、国际字符集、多字节字符编码,并且它对排序、大小写敏感度和格式化有本地意识。PostgreSQL是高度可扩展的–在并发用户的数量上,它可以容纳以及它可以管理的数据量。此外,PostgreSQL是跨平台的,可以在许多操作系统上运行,包括Linux、Microsoft Windows、OS X、FreeBSD和Solaris。
动态加载
PostgreSQL服务器也可以通过动态加载将用户编写的代码纳入自身。用户可以指定一个对象代码文件;例如,一个实现新功能或类型的共享库,PostgreSQL将根据需要加载它。即时修改其操作的能力使其独特地适合于快速实现新的存储结构和应用。
PostgreSQL服务器有一个简单的结构,由共享内存、后台进程和数据目录结构组成。在这一节中,我们将讨论每个组件,以及它们如何相互作用。下面给出了一个PostgreSQL结构的图示。最初,客户端向服务器发送一个请求。然后,PostgreSQL服务器使用共享缓冲区和后台进程处理数据。PostgreSQL数据库服务器的物理文件被存储在数据目录中。

PostgreSQL架构图解(图片来源:)
共享内存
共享内存是为交易日志缓存和数据库缓存保留的。它还包括共享缓冲区、WAL缓冲区、工作内存和维护工作内存等元素。让我们深入了解以下每个主题。
这些缓冲区的作用是尽量减少服务器的DISK IO。为了实现这个目标,如果我们有一个专用于PostgreSQL的服务器,将共享缓冲区的值设置为总内存的25%是公平的。从9.3版本开始,共享缓冲区的默认值是128MB。当几个用户同时访问时,必须尽量减少争夺。经常使用的区块应该在缓冲区内停留尽可能长的时间。这允许它尽可能快地访问数据。
WAL缓冲区临时存储对数据库的更改。WAL文件由WAL缓冲区在预定的时间点写入的内容组成。WAL文件和WAL缓冲区对于在备份和恢复过程中恢复数据具有重要意义。
这个内存空间用于位图操作、排序、合并连接和哈希连接,将数据写入临时磁盘文件。从9.3版本开始的默认设置是4MB。
这个内存槽用于数据库操作,如分析、真空、修改表和创建索引。从9.4版本开始的默认设置是64MB。
后台进程
每个后台进程都是不可分割的,并执行着管理服务器的独特功能。下面将进一步阐述几个重要的后台进程:
当一个检查点发生时,脏缓冲区被写入文件。Checkpointer本质上是将所有脏页从内存中写入磁盘,并清理共享缓冲区。如果数据库崩溃,数据损失可以通过获得最后一个检查点时间和PostgreSQL停止时间之间的差异来衡量。
它更新日志和备份信息。直到9.1版,这个过程是与定期进行的检查点过程一起整合的。然而,从 9.2 版开始,检查指针进程与后台写入进程分开。
这个进程定期将WAL缓冲区中的WAL数据写入并刷新到持久性存储中。
如果启用,这个进程有责任将WAL日志文件复制到指定的目录中。
这个进程将WAL缓冲区写到WAL文件中。
数据文件/数据目录结构
PostgreSQL有几个数据库,共同组成一个数据库集群。当初始化时,模板0、模板1和Postgres数据库被创建。用户的新数据库创建是通过模板数据库完成的,模板数据库由系统目录表组成。尽管初始化后template0和template1中的表的列表是一样的,但只有template1数据库可以创建用户需要的对象,因此用户数据库是通过克隆template1数据库来创建。
集群所需的数据存储在集群的数据目录中,该目录也被称为 “PGDATA”。它由几个子目录组成。下面提到几个重要的子目录:
除了提供一系列的功能,如索引、视图和存储过程外,PostgreSQL还有很多功能,即:
让我们更详细地研究这些问题。
PL/PGSQL是PostgreSQL提供的一种本地程序性语言,具有不同的现代功能。它支持 *** ON数据类型,该数据类型是轻量级的,并确保包含在一个单一的包中的灵活性。因此,PostgreSQL支持几种编程语言和协议,包括Perl, Ruby, , .Net, C/C++, Java, ODBC和Go。
它是免费和开源的–这是迄今为止PostgreSQL最重要的好处。它得到了超过20年的社区发展的支持,这反过来又促进了它的高水平的完整性。它的源代码在开源许可下可用,允许你以你认为合适的方式使用、修改和实现它–不需要额外费用。
对象、类和函数重载在PostgreSQL中被直接支持。由于其面向对象的特性,有可能扩展数据类型以创建自定义数据类型。这保证了开发人员在操作需要数据库集成的复杂数据模型时的高度灵活性。
表的继承是PostgreSQL由于其面向对象的特性而支持的另一个特性。子表可以继承其父表的列,除了子表拥有的其他列,使其与自身不同。
PostgreSQL中的写操作可以并发进行,而不需要读写锁。在处理大量数据时,索引被用来加快查询速度,这使得数据库可以找到特定的行,而不需要在所有的数据中循环。
在PostgreSQL中,你甚至可以创建一个表达式索引,它对表达式或函数的结果起作用,而不仅仅是一个列的值。也支持部分索引,即只对表的一部分进行索引。它还支持读取查询的并行化,表达式的即时编译(JIT),以及嵌套事务(通过保存点),以确保良好的性能和效率。
PostgreSQL是高度可扩展的,因为它的操作是目录驱动的,也就是说,信息存储在数据库、列、表等。PostgreSQL不仅在其目录中保存了更多的信息,而且还保存了数据类型、访问 *** 、函数等细节。你甚至可以从不同的编程语言编写你的代码,而不需要重新编译你的数据库,并定义你的数据类型。
它通过备用服务器的运行、连续规划、为备用服务器准备主服务器、设置备用服务器、流式复制、复制槽、级联复制以及在备用服务器中连续存档来保证高可用性和负载平衡。此外,PostgreSQL支持同步,两个数据库实例可以同时运行,主数据库与从数据库同时同步,进一步确保高可用性。
除了安全地存储数据并允许用户在处理请求时检索数据外,它还得到了一个由贡献者组成的社区的支持,这些贡献者定期发现错误并试图改进软件,使PostgreSQL变得可靠。
设计软件使其可以在一系列地区使用的过程被称为国际化。它通过多字节字符编码、ICU校对、Unicode来支持国际字符集,并且在排序、格式化和大小写敏感性方面具有本地意识。用你选择的语言查看PostgreSQL生成的信息是国际化的一个例子。
你是否需要建立复杂的查询和关系,需要以最经济的方式经常更新和持续维护?PostgreSQL可能是一个合适的选择。PostgreSQL不仅是免费的,而且它是跨平台的,不仅仅限于Windows操作系统。如果你想分析数据,PostgreSQL提供了大量的正则表达式作为分析工作的基础。
在支持CSV方面,它也是更好的数据库之一。简单的命令如 “copy from” 和 “copy to” 有助于快速处理数据。如果有导入问题,它将抛出一个错误并立即停止导入。下面的章节将介绍PostgreSQL在现代世界中的一些最常见的应用。让我们开始吧。
PostGIS地理空间数据库扩展插件对PostgreSQL来说无疑是有益的。当与PostGIS扩展一起使用时,PostgreSQL支持地理对象,可以作为地理信息系统(GIS)和基于位置的服务的地理空间数据存储来使用。
PostgreSQL是金融业的一个理想的DBMS系统。由于它完全符合ACID标准,它是OLTP(在线事务处理)的理想选择,因为这些数据库需要频繁地写入、读取和更新,同时强调快速处理。它在执行数据库分析方面也很合适。它可以与任何进行数学运算的软件集成,如Matlab和R。
科学数据需要数兆字节的数据。以最有效的方式处理数据是非常必要的。PostgreSQL提供了精彩的分析 *** 和强大的SQL引擎。这有助于轻松地管理大量的数据。
网站经常处理每秒数百或数千的请求。如果开发人员正在寻找一个具有成本效益和可扩展的解决方案,PostgreSQL将是最合适的。PostgreSQL可以运行动态网站和应用程序,作为LAMP栈的强大替代方案的一部分,即LAPP栈。(Linux, , PostgreSQL, PHP, Python, and Perl)
许多初创公司和大型企业使用PostgreSQL作为产品、解决方案和互联网规模应用的主要数据存储解决方案。通过使用这个开源的DBMS作为存储后端,可以优化供应链的性能。因此,这使得企业可以减少业务的运营成本。
到目前为止,我们在这篇文章中只对PostgreSQL进行了赞美,因此,我们向你展示一些你在涉足PostgreSQL时可能会遇到的缺点,这才是公平的。下面是你在采用PostgreSQL过程中可能遇到的一些操作上的挑战。
下面是PostgreSQL的几个关键的,你可以为你的WordPress网站利用。

MySQL标志 (图片来源: )
当你想到数据库的时候,你的脑海中马上就会浮现出。在可行的替代方案开始涌现之前,它在很长一段时间内是开发者的一个相当普遍的选择。早在2019年,就有超过39%的开发者使用它。即使它缺乏PostgreSQL的多功能性,它仍然可以在各种使用情况下派上用场,如可扩展的 *** 应用程序。
自1995年成立以来,MySQL一直由甲骨文公司维护。甲骨文公司还提供具有专有插件、补充服务、扩展和强大用户支持的MySQL精英版本。为了更好地理解,你需要对客户-服务器模型和关系型数据库有更好的理解。简单地说,你的数据被分割成各种独立的存储区域,也被称为表,而不是把所有东西都卸在一个单独的大存储单元中。这就是关系型数据库的本质。
除了是一个可靠和坚实的数据库平台外,它还相当容易掌握。学习曲线并不像同时代的一些数据库那样陡峭,因为你不需要完全掌握SQL来开始使用MySQL。
如果你的网站利用WordPress,并想了解如何使MySQL运行得更快,你更好的选择是改进你的数据库,使之与你使用WordPress的方式相一致。在技术术语中,这被称为 ““。优化MySQL的明显优势是缩短加载时间,同时使网站整体更快。除此之外,如果你正确地维护你的数据库,你应该看到你的增长有一个稳定的改善,甚至随着它的扩大。

MariaDB标志 (图片来源: )
是MySQL关系型数据库管理系统的一个商业支持分叉,它拥有一个根本性的独特 *** 来满足现代世界的需求。MariaDB的目的性和可插拔的存储引擎为以前需要大量专门数据库的工作负载提供支持。这使得它可以成为企业的一站式服务,无论是在云端还是在他们喜欢的商品硬件上。
你可以在几分钟内部署MariaDB,用于分析、交易或混合用例,在不放弃关键企业功能的情况下提供无与伦比的操作灵活性。这包括完全的SQL和真正的ACID兼容。
MariaDB为其用户提供了以下产品:
由于其与MySQL的兼容性,你可以作为MySQL的 “替身”,而几乎没有任何后果。
当你想到对之一次做网站的人友好的平台时,你可能会想到WordPress。WordPress让你在没有任何编码经验的情况下实现很多东西。然而,为了从WordPress中提取更大的价值,你仍然需要对它的一些基本元素的功能有一个清楚的了解。例如,如果你已经在你的网站上利用WordPress有一段时间了,现在可能是了解WordPress数据库如何运作的好时机。
这就立即引发了一个常见的问题,为什么WordPress毕竟需要一个数据库?它可能看起来不像,但是WordPress的内容比看上去的要多。在幕后有很多工作要做,以使它有效地运作,不管你的网站大小如何。
要深入研究,你需要知道,一个WordPress网站是由许多不同类型的数据组成的。现在,所有这些信息都被存储在一个综合的WordPress数据库中,这是一个不争的事实。这个数据库对你的WordPress网站来说是不可或缺的,它可以保存你或你的访问者所做的所有改变,并使你的网站能够无缝运行。以下是整理在你的WordPress数据库中的一些数据:
当你安装一个WordPress网站时,这个过程的一部分是为它创建一个数据库。通常情况下,这是自动发生的。然而,如果你想手动创建一个数据库,或者甚至利用一个新网站的现有数据库,也有一个规定。
下一节将谈谈对WordPress数据库的建议做法。
数据库管理工具的基本功能是让你查看你的数据库的内容。为了使数据库顺利运作,利用数据库管理工具可能是你更好的选择。一般来说,数据库管理工具整合了满足三种不同数据库专业人员需求的功能:
当在市场上寻找符合你的业务要求的数据库管理工具时,你应该寻找能够将测试、数据库开发和部署任务带入持续交付和持续集成过程的工具,使其更容易跟上应用开发。
一个有效的数据库管理工具还应该允许将数据从表格结果可视化为图表、柱状图和图形,并能轻松分发给决策者。它还应该帮助管理员在生产中出现问题之前定位问题,通过锁定那些在交易量增加时不能很好扩展的SQL语句和应用程序。
(以前称为phpMinAdmin)是一个免费的开源数据库管理工具,它提供了大量有用的功能和一个更优雅的UI(用户界面)。你可以很容易地在你的服务器上部署这个方便的数据库管理工具,你所需要做的就是上传其单一的PHP文件,将你的浏览器指向它,然后登录。
如果你想评估一个网站的质量,可以看看它的数据库。与你的网站有关的每一粒信息都会进入你的WordPress数据库。其中有些是至关重要的,而有些只是在阻碍你。这将包括坏的表格、旧的草稿、垃圾邮件的评论。为了防止它们阻碍你的网站,你需要引入WordPress数据库插件。
数据库插件可以有各种形式。有些插件可以用来每月或每周清理数据库中的垃圾文件。其他插件可以用来在做修改之前备份你的数据库,例如,在迁移期间。除了提高你的网站速度,你可以使用来提供一个更有效的用户体验,同时提高你在搜索引擎上排名的机会。
作为一个WordPress用户,你可能已经遇到了一些令人讨厌的WordPress错误。下面是你可能遇到过的最常见的错误信息之一:

建立数据库连接的错误
的重要性应该是相当明显的。不仅会妨碍你的网站的正常运作,而且会对消费者的体验产生不利的影响。安装和更新失败、停机和资源缺失会给你的赚钱潜力留下凹痕,并伤害你的信誉。
PostgreSQL是一个开源和免费的关系型数据库管理系统,专注于SQL兼容性和可扩展性。依靠30多年的积极开发,PostgreSQL是全球最广泛使用的开源数据库工具之一。
在这篇文章中,我们介绍了PostgreSQL的一些突出特点、PostgreSQL的架构、它的使用案例、好处、操作挑战和关键的替代方案。我们用一些推荐的做法来结束这篇文章,以保持你的WordPress数据库处于高峰状态,同时你继续扩大规模。
宝塔面板现在已经成为国内许多站长必备的服务器管理必备工具。相比直接使用SSH+FTP来管理服务器,宝塔面板可以提供可视化管理,包括文件管理、数据库管理、数据备份、SSL配置等等。 如果你希望更简单高效地管理您的网站及服务器,宝塔面板是不错的选择。下面是一些宝塔面板安装及常见问题:...
本章节主要是对宝塔面板的主界面的各个版本进行一个简单的说明。 宝塔面板主界面主要包括:服务器操作系统、服务器状态、站点信息、软件管理及网络流量几个部分。 Windows面板有部分功能未实现,其余部分与Linux面板同步。 系统操作...
使用宝塔面板,您可以快速地创建一个FTP管理账户,对网站文件进行管理。但有必要提醒大家的是,使用FTP远不如使用SFTP安全,你可以查看文章“”进一步了解两者之间的差异。 此外,宝塔面板的文件管理模块其实已经能够满足站长的大部分文件管理需求。当然,如果你非得要使用FTP管理服务器文件,可以参照以下...
宝塔面板提供丰富的软件以一键安装,这让服务器环境搭建提供不少的便利性,站长可以根据实际需求快速编译安装以实现不同的功能需求。 软件管理,主要是宝塔提供的一些面板扩展插件。 Nginx Nginx是一个高性能的HTTP和反向代理服务器,具有轻量级、占用内存小,并发能力强等优势。 w...
美国劳工统计局估计在美有超过软件开发人员。根据2021年的数据,其中,这是世界上使用最广泛的五种编程语言之一。 自然,学习Java并成为Java开发人员对于任何对软件开发感兴趣的人来说都是明智的职业选择。 在本综合指南中,您将学习成为Java开发人员所需的一切知识。我们将分解您需要的技能、工...
有时似乎有太多的商业首字母缩写词要记住。随着快速变化的技术进步和云计算的出现,新的类别将不断涌现。XaaS 就是这样一个最新的补充。 该领域的大多数读者都知道、和。但是你听说过XaaS吗? XaaS(一切皆服务)涵盖了一切:现在一切都可以成为服务。 这听起来好像很复杂的样子,但别担心——我...