了解 PostgreSQL 体系结构

这篇具有很好参考价值的文章主要介绍了了解 PostgreSQL 体系结构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PostgreSQL 是客户端/服务器关系数据库管理系统 (RDMS)。 PostgreSQL 还支持各种扩展插件,例如 Azure Database for PostgreSQL 超大规模 Citus 选项中的 Citus 扩展插件。 将扩展插件加载到数据库中后,它将像任何内置功能一样正常运行。

PostgreSQL 也有自己的查询语言,称为 pgsql。 此外,PostgreSQL 还支持过程语言,如 Ruby on Rails。

客户端/服务器体系结构

PostgreSQL 基于客户端/服务器体系结构。 该服务器存储、管理数据并将数据返回到客户端程序。 客户端程序使用 pgSQL 或 PostgreSQL 支持的过程语言之一(例如 PL/pgSQL)请求数据。

一个 PostgreSQL 会话由三部分组成:

  • Postmaster
  • 客户端应用程序
  • 服务器

Postmaster

Postmaster 是管理 PostgreSQL 服务器的监督守护程序过程。 Postmaster 守护程序管理各种服务器进程之间的通信,包括初始化服务器、关闭服务器、处理连接请求和执行其他后台进程。 在 Azure Database for PostgreSQL 中,你无权访问文件系统或 Postmaster 进程。

客户端应用程序

客户端运行查询并与 Azure Database for PostgreSQL 服务器上的数据库进行交互。 若要运行查询,需要一个客户端工具,例如 Azure Data Studio、DBeaver、pgAdmin 或 psql。 你将在下一个模块中了解客户端工具。

服务器进程

群集 - 单个 PostgreSQL 服务器可以托管多个用户数据库。 PostgreSQL 将此数据库集合称为群集。 每个数据库相互独立,用户和应用程序与单个数据库进行交互。 用户是在群集或服务器级别创建的。

这些数据库的数据存储在名为 PGDATA 的群集数据目录中。 PGDATA 数据目录包括一个包含正在运行的 PostgreSQL 版本的文件、包含指向表空间的链接的 pg_tblspc 和包含预写日志文件的 pg_xlog。

Azure Databases for PostgreSQL 是一项管理存储和基础文件系统的服务。 作为此服务器的用户,你无权直接访问 PGDATA 目录或其任何子目录。

除了你创建的数据库外,还有三个系统数据库:

  • postgres - 默认数据库。 创建服务器后,连接到 postgres 数据库。
  • azure_maintenance - 管理服务进程的数据库。 你无权直接访问此数据库。
  • azure_sys - 查询存储数据库。 不得修改 azure_sys 数据库或其架构。 更改 azure_sys 中的任何内容都会阻止查询存储和其他性能功能正常运行。

架构 - 架构是数据库对象的命名分组。 具有许多对象的大型数据库受益于将对象组织到架构中。 例如,为销售相关对象创建架构,客户端相关对象的架构将使查找正确的对象更容易。

服务器参数 - PostgreSQL 有多个配置文件,用于确定数据库引擎应如何工作。 主 PostgreSQL 配置文件称为 postgresql.conf。

表空间 - 通过 PostgreSQL 的本地实现,可以使用 pg_tblspc 子目录创建表空间,这些表空间链接到名为 PGDATA 的主存储区域。 Azure Database for PostgreSQL 不支持表空间:所有表都在主存储区域中创建。

系统目录 - PostgreSQL 包含许多用于存储有关数据库对象的信息的系统表和视图。 例如,pg_database 将返回服务器上的所有数据库,pg_class 存储有关表的统计信息。

Azure Database for PostgreSQL 允许访问某些目录,但不允许访问所有系统目录。

扩展插件 - PostgreSQL 支持可扩展数据库引擎核心功能的一系列扩展插件。 这些扩展插件在名为 PostgreSQL Extensions Network (PGXN) 的存储库中提供。

若要使用 PostgreSQL 扩展插件,必须在数据库中安装它。 若要安装扩展插件,请从 psql 工具运行 CREATE EXTENSION 命令,将该扩展插件加载到数据库中。 例如:

SELECT create_extension('postgis');

若要了解 Azure Database for PostgreSQL 支持哪些扩展插件,请运行以下查询:

SELECT * FROM pg_available_extensions;

所有 Azure Database for PostgreSQL 服务器都包含 pg_stat_statements 扩展插件。 已安装此扩展插件,用于跟踪 SQL 语句的执行统计信息。 服务器参数 pg_stat_statements.track 定义该扩展插件计数的语句。 选项包括:

  • 顶部 - 跟踪客户端直接发出的所有语句(默认)。
  • 无 - 未跟踪任何语句。
  • 全部 - 跟踪所有语句,包括嵌套语句和函数调用的语句。

服务器上存在记录每个 SQL 语句的性能开销。 如果没有主动使用 pg_stat_statements,请将此参数设置为“无”。 另请注意,某些第三方监视服务可能依赖于 pg_stat_statements。

查询优化器 - PostgreSQL 使用基于成本的查询优化方法。 分析程序检查查询语法,并将查询分成不同的部分。 分析程序创建一个分析树,并将查询传递给重写器,该重写器将规则应用于查询。 规划器找出在实际执行查询之前执行查询的最佳方式。

后端进程 - PostgreSQL process-per-transaction 模型。 新用户连接时,PostgreSQL 对用户进行身份验证,并创建后端服务器进程来处理连接。 客户端仅在提交查询和接收查询结果时与服务器进程交互。

参见:

了解 PostgreSQL 体系结构 - Training | Microsoft Learn文章来源地址https://www.toymoban.com/news/detail-590557.html

到了这里,关于了解 PostgreSQL 体系结构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 构建安全架构的 Azure 云:深入了解零信任体系结构

    零信任正成为云安全的一种日益重要的模型,特别是在 Azure 云环境中。随着越来越多的企业迁移到云,确保安全的云环境已经成为当务之急。“零信任模型”正迅速成为实现这种安全性的主要方法。要在Azure云中实现零信任模型,需要仔细的规划和执行。本文将讨论 Azure Cl

    2024年02月10日
    浏览(77)
  • 了解多人游戏下的客户端与服务器体系结构

    直连模式下,选择一个玩家充当服务器(房主)。如果游戏出现不同步,那么均按房主的世界来,玩家1可以作弊修改其游戏来影响其他玩家的世界 针对两个玩家来说,直连连接质量更好,延迟小 如果玩家数量很多,不同玩家间的通信则需要靠房主为中介,那通信质量与房主

    2024年02月12日
    浏览(28)
  • 【3.1数据库系统】数据库体系结构

    ①.外模式: 外模式面向具体的应用程序,定义在逻辑模式之上,但独立于存储模式和存储设备。 ②.概念模式(模式): 用于描述数据库的逻辑结构。 ③.内模式: 也称为存储模式或物理模式,是数据库内部的一种表示方式,用于描述数据物理结构和存储结构。 ①. 基本关

    2024年01月23日
    浏览(37)
  • 初识MySQL:了解MySQL特性、体系结构以及在Linux中部署MySQL

    目录 MySQL简介 MySQL特性 MySQL体系结构 SQL的四个层次: 连接层: SQL层: 插件式存储引擎: 物理文件层: 一条SQL语句的执行流程: MySQL在Linux中的安装、部署 首先需要下载mysql软件包:   MySQL是一个小型关系数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被sun公司

    2024年02月12日
    浏览(37)
  • mysql从入门到放弃之数据库体系结构与管理

    第一篇文章中主要学习了mysql二进制的基本安装及数据库初始化等操作,本篇文章主要了解mysql的体系结构和管理,例如: mysql的实例组成、逻辑存储结构、物理存储结构等方面展开学习 提示:以下是本篇文章正文内容,下面案例可供参考 3.1、mysqld守护进程结构 3.2、 引入sql语句

    2024年01月21日
    浏览(33)
  • 『Linux从入门到精通』第 ⑫ 期 - 深入了解冯诺依曼体系结构与操作系统(Operator System)

    🌸作者简介: 花想云 ,在读本科生一枚,C/C++领域新星创作者,新星计划导师,阿里云专家博主,CSDN内容合伙人…致力于 C/C++、Linux 学习。 🌸 专栏简介:本文收录于 Linux从入门到精通 ,本专栏主要内容为本专栏主要内容为Linux的系统性学习,专为小白打造的文章专栏。

    2024年02月10日
    浏览(36)
  • 『Linux从入门到精通』第 ⑫ 期 -深入了解冯诺依曼体系结构与操作系统(Operator System)

    🌸作者简介: 花想云 ,在读本科生一枚,C/C++领域新星创作者,新星计划导师,阿里云专家博主,CSDN内容合伙人…致力于 C/C++、Linux 学习。 🌸 专栏简介:本文收录于 Linux从入门到精通 ,本专栏主要内容为本专栏主要内容为Linux的系统性学习,专为小白打造的文章专栏。

    2023年04月23日
    浏览(73)
  • 一文带你了解三大开源关系型数据库:SQLite、MySQL和PostgreSQL

    目录 1、概述 2、SQLite数据库 2.1、SQLite简介 2.2、SQLite优缺点 2.3、SQLite应用场景 3、MySQL数据库 3.1、MySQL简介 3.2、MySQL优缺点 3.3、MySQL应用场景 4、PostgreSQL数据库 4.1、PostgreSQL简介 4.2、PostgreSQL优势 4.3、PostgreSQL应用场景 5、在实际系统中的选择 VC++常用功能开发汇总(专栏文章列

    2024年02月08日
    浏览(33)
  • 【PostgreSQL】导出数据库表(或序列)的结构和数据

    要导出 PostgreSQL 数据库的结构和数据,你可以使用 pg_dump 命令行工具。 pg_dump 可以生成一个 SQL 脚本文件,其中包含了数据库的结构(表、索引、视图等)以及数据。下面是如何使用 pg_dump 导出数据库结构和数据的示例: 导出数据库结构和数据: 使用以下命令来导出整个数据

    2024年02月11日
    浏览(29)
  • 【postgresql 基础入门】从了解数据库访问权限,访问数据库,到认识数据库的所有者及属性,从此打开了数据库使用的大门

    ​ 专栏内容 : postgresql内核源码分析 手写数据库toadb 并发编程 ​ 开源贡献 : toadb开源库 个人主页 :我的主页 管理社区 :开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 入门准备 postgrersql基础架构 快速使用 初始化集群 数据库服务管理 psql客户

    2024年02月08日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包