当前位置: 首页 > news >正文

【PostgreSQL】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/

本文完结!

相关文章:

  • 怎么才能快速准确地全面地了解一个陌生的行业?
  • matlab经验模式分解的R波检测算法
  • 图像压缩感知的MATLAB实现(OMP)
  • 外包干了3个月,技术倒退1年。。。
  • 操作系统——处理机调度
  • 如何实现一个K8S DevicePlugin?
  • 韩国服务器托管的性能及成本情况
  • Nginx使用
  • 力扣用例题:2的幂
  • 【春运抢票攻略浅析】
  • 百度统计如何添加网站获得代码?百度统计代码加在哪里?
  • 事务的隔离级别(高频面试题)
  • 【Java程序设计】【C00282】基于Springboot的校园台球厅人员与设备管理系统(有论文)
  • 解决vulhub漏洞环境下载慢卡死问题即解决docker-valhub漏洞环境下载慢的问题
  • 新茶饮“卖水人”混战:徳馨、恒鑫,谁能“卷”出新故事?
  • 【React系列】如何构建React应用程序
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • Git学习与使用心得(1)—— 初始化
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Sass 快速入门教程
  • SpingCloudBus整合RabbitMQ
  • Spring Boot快速入门(一):Hello Spring Boot
  • TypeScript实现数据结构(一)栈,队列,链表
  • Windows Containers 大冒险: 容器网络
  • 聊聊directory traversal attack
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 试着探索高并发下的系统架构面貌
  • Prometheus VS InfluxDB
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • "无招胜有招"nbsp;史上最全的互…
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • $.each()与$(selector).each()
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (10)ATF MMU转换表
  • (TOJ2804)Even? Odd?
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (六)c52学习之旅-独立按键
  • (三分钟)速览传统边缘检测算子
  • (十六)一篇文章学会Java的常用API
  • (循环依赖问题)学习spring的第九天
  • (一)WLAN定义和基本架构转
  • (转载)Linux网络编程入门
  • .bat批处理出现中文乱码的情况
  • .Mobi域名介绍
  • .NET CORE Aws S3 使用
  • .net Signalr 使用笔记
  • .NET 药厂业务系统 CPU爆高分析
  • .net 怎么循环得到数组里的值_关于js数组
  • .net/c# memcached 获取所有缓存键(keys)
  • .NET的微型Web框架 Nancy
  • ?.的用法
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析