【PostgreSQL】PostgreSQL详细介绍

news/2024/7/9 22:31:22 标签: postgresql, 数据库

PostgreSQL详细介绍

  • 一、什么是PostgreSQL?
  • 二、为什么要使用PostgreSQL?
  • 三、PostgreSQL功能列表
    • 3.1 数据类型
    • 3.2 数据完整性
    • 3.3 并发,性能
    • 3.4 可靠性、灾难恢复
    • 3.5 安全
    • 3.6 可扩展性
    • 3.7 国际化,文本搜索
  • 四、参考资料

关于PostgreSQL安装详细步骤请参考:【PostgreSQL】Windows安装PostgreSQL数据库图文详细教程

一、什么是PostgreSQL?

PostgreSQL是一个强大的开源对象关系数据库系统,它使用并扩展了SQL语言,并结合了许多功能,可以安全地存储和扩展最复杂的数据工作负载。PostgreSQL的起源可以追溯到1986年,是加州大学伯克利分校POSTGRES项目的一部分,在核心平台上有超过35年的积极开发。

PostgreSQL以其经验证的体系结构、可靠性、数据完整性、强大的功能集、可扩展性以及软件背后的开源社区致力于始终如一地提供高性能和创新的解决方案而赢得了良好的声誉。PostgreSQL运行在所有主要的操作系统上,自2001年以来一直与ACID兼容,并具有强大的附加组件,如流行的PostGIS地理空间数据库扩展程序。毫不奇怪,PostgreSQL已经成为许多人和组织选择的开源关系数据库

开始使用PostgreSQL从来没有这么容易过——选择一个你想要构建的项目,让PostgreSQL安全可靠地存储你的数据。

二、为什么要使用PostgreSQL?

PostgreSQL提供了许多功能,旨在帮助开发人员构建应用程序,管理员保护数据完整性和构建容错环境,并帮助您管理数据,无论数据集大小。除了免费和开源之外,PostgreSQL还具有高度的可扩展性。例如,您可以定义自己的数据类型,构建自定义函数,甚至不用重新编译数据库就可以用不同的编程语言编写代码!

PostgreSQL试图遵循SQL标准,在这种标准中,这种一致性不会与传统功能相矛盾,也不会导致糟糕的体系结构决策。支持SQL标准所需的许多功能,尽管有时语法或功能略有不同。随着时间的推移,可能会朝着一致性的方向进一步发展。截至2023年9月发布的第16版,PostgreSQL至少符合SQL的179个强制性特性中的170个:2023核心一致性。截至本文撰写之时,没有一个关系数据库完全符合此标准。

三、PostgreSQL功能列表

以下是PostgreSQL中各种功能的详尽列表,每个主要版本都会添加更多功能:

3.1 数据类型

  • 基本类型: Integer, Numeric, String, Boolean
  • 结构化: Date/Time, Array, Range / Multirange, UUID
  • 文档: JSON/JSONB, XML, Key-value (Hstore)
  • 几何体:Point, Line, Circle, Polygon
  • 自定义:Composite, Custom Types

3.2 数据完整性

  • 唯一,不为NULL
  • 主键
  • 外键
  • 排除限制
  • 显式锁、咨询锁

3.3 并发,性能

  • 索引:B-树、多列、表达式、分部
  • 高级索引:GiST,SP GiST,KNN GiST,GIN,BRIN,覆盖索引,Bloom过滤器
  • 复杂的查询规划器/优化器、仅索引扫描、多列统计信息
  • 事务,嵌套事务(通过保存点)
  • 多版本并发控制(MVCC)
  • 读取查询的并行化与B树索引的构建
  • 表分割
  • SQL标准中定义的所有事务隔离级别,包括Serializable
  • 表达式的实时(JIT)编译

3.4 可靠性、灾难恢复

  • 预写日志记录(WAL)
  • 复制:异步、同步、逻辑
  • 时间点恢复(PITR),活动备用
  • 表空间

3.5 安全

  • 身份验证:GSSAPI、SSPI、LDAP、SCRAM-SHA-256、证书等
  • 坚固访问控制系统
  • 列和行级别的安全性
  • 使用证书的多因素身份验证和一种附加方法

3.6 可扩展性

  • 存储的函数和过程
  • 过程语言:PL/pgSQL、Perl、Python和Tcl。通过扩展还可以使用其他语言,例如Java、JavaScript(V8)、R、Lua和Rust
  • SQL/JON-构造函数和路径表达式
  • 外部数据包装器:使用标准SQL接口连接到其他数据库或流
  • 可自定义的表格存储界面
  • 许多提供附加功能的扩展,包括PostGIS

3.7 国际化,文本搜索

  • 支持国际字符集,例如通过ICU排序
  • 不区分大小写和不区分重音的排序规则
  • 全文搜索

当然你也可以在PostgreSQL文档中发现更多功能。此外,PostgreSQL具有高度的可扩展性:许多功能,如索引,都定义了API,因此您可以使用PostgreSQL进行构建以解决您的挑战。

PostgreSQL已经被证明是高度可扩展的,无论是在它可以管理的数据数量上,还是在它可以容纳的并发用户数量上。生产环境中有活动的PostgreSQL集群,可以管理许多TB的数据,也有专门的系统,可以管理PB的数据。

四、参考资料

PostgreSQL官网:https://www.postgresql.org/

本文完结!


http://www.niftyadmin.cn/n/5387343.html

相关文章

Boss直聘聊天问答

主动打招呼常用语: 1.您好,我看到贵公司的招聘需求很符合我的技术栈,方便约个面试聊一聊嘛? 2.我叫郭治江,2022年毕业,物联网工程专业,目前从事Java开发工作已经三年了,上家公司是…

C++入门04 函数的参数传递、引用类型与重载

图源:文心一言 听课笔记简单整理,供小伙伴们参考,包含以下内容“🐋3.11 引用类型、🐋3.14 内联函数、🐋3.15 默认参数值、🐋3.16 函数重载、🐋3.17 C系统函数”~🥝&…

SpringCloud:日志traceId错乱

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一、问题背景 二、排查过程 三、解决方案 总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、问题背景 springcloud项目&#xff0c…

WEB甘特图选型

1.火车侠 GitHub - w1301625107/Vue-Gantt-chart: 使用Vue做数据控制的Gantt图表 优点:有小时选项 缺点:不支持拖拽 2.火车侠二号 GitHub - liyang5945/vue-drag-gantt-chart: Vue拖拽甘特图 a draggable gantt-chart with vue 有点:实现了…

Flask框架:用Python打造精巧而强大的Web应用

在当今数字化时代,Web应用的需求不断增长,而对于开发者来说,选择一个适合的框架来构建Web应用是至关重要的。Flask框架作为一个简洁而灵活的Python微型框架,以其优雅的设计和丰富的可扩展性,为开发者提供了一个强大而精…

分布式系统一致性与共识算法

分布式系统的一致性是指从系统外部读取系统内部的数据时,在一定约束条件下相同,即数据(元数据,日志数据等等)变动在系统内部各节点应该是一致的。 一致性模型分为如下几种: ① 强一致性 所有用户在任意时…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第八天-高级驱动framebuffer(物联技术666)

链接:https://pan.baidu.com/s/1cd7LOSAvmPgVRPAyuMX7Fg?pwd1688 提取码:1688 帧缓冲(framebuffer)设备应用于linux显示技术方面。因为linux的显示平台已经全部基于framebuffer,所以目前在linux环境下开发图形化界面…

3款强大的二次创作软件分享

随着数字化时代的到来,二次创作已经成为越来越受欢迎的艺术形式。通过利用各种创作软件,人们可以将原创作品重新演绎、改编或者赋予全新的意义。在本文中,我们将介绍三款强大的二次创作软件,它们为创作者们提供了丰富的工具和创作…