首页 > 数据库 >PostgresSQL 概述

PostgresSQL 概述

时间:2023-06-22 09:03:35浏览次数:58  
标签:PostgresSQL 功能 PostgreSQL 可扩展性 索引 概述 SQL 类型

PostgreSQL 简介

PostgreSQL 是世界上最先进的开源对象-关系型数据库管理系统(ORDBMS),简称Postgres。它最初基于加利福尼亚大学伯克利分校开发的POSTGRES, Version 4.2,至今已有30多年的历史。

首先说开源,PostgreSQL是一个免费并且开源的软件。它的代码基于PostgreSQL许可发行,这是一个类似于BSD或者MIT的自由开放源码许可协议。用户可以基于任何目的使用、修改和发布PostgreSQL,甚至直接包装一下拿出去卖钱都没问题,唯一的要求就是保留它的版权声明。这一点相对于MySQL社区版的GPL协议友好许多。

再说它的先进,PostgreSQL使用C语言进行开发,最初是为了UNIX类平台而设计。不过,PostgreSQL现在可以支持各种主流的平台,例如Linux、BSD、AIX、HP-UX、Mac OS X、Solaris以及Windows等等。PostgreSQL遵循事务的ACID原则,高度兼容SQL标准,2021年9月发布的PostgreSQL14至少符合SQL: 2016核心一致性的179项强制功能中的170项。目前,还没有任何关系型数据库产品完全符合该标准。

以下是PostgreSQL所支持的主要功能和特性,随着新版本的发布,将会增加更多的功能:

数据类型

  • 基本类型:整型、数值、字符串、布尔值
  • 结构化类型:日期/时间、数组、范围、UUID
  • 文档类型:JSON/JSONB、XML、键值存储(Hstore)
  • 几何类型:点、线、圆、多边形o定制化类型:复合类型、自定义类型

数据完整性

  • UNIQUE、NOT NULL
  • 主键
  • 外键
  • 排除约束
  • 显式锁、建议锁
并发、性能
  • 索引:B-tree、复合索引、函数索引、部分索引
  • 高级索引:GiST、SP-Gist、KNN Gist、GIN、BRIN、覆盖索引、布隆过滤器索引
  • 复杂的查询计划器/优化器、Index-Only扫描、多列统计
  • 事务、嵌套事务(通过保存点实现)
  • 多版本并发控制(MVCC)
  • 并行查询以及B-tree索引的并行创建
  • SQL标准中定义的4种事务隔离级别,包括序列化(Serializable)事务级别
  • 表达式的即时(JIT)编译
可靠性、灾难恢复
  • 预写式日志(WAL)
  • 复制:异步复制、同步复制、逻辑复制
  • 基于时间点的恢复(PITR)、活动备份
  • 表空间
安全
  • 身份认证
  • GSSAPI、SSPI、LDAP、SCRAM-SHA-256、SSL证书等等
  • 强大的访问控制系统
  • 列级与行级安全性

可扩展性

  • 存储函数和存储过程
  • 过程语言:PL/PGSQL、PL/Perl、PL/Python等
  • 外部数据包装器(FDW):通过标准SQL接口连接到其他数据库或数据流
  • 大量提供额外功能的扩展:包括PostGIS

对于初学者,随着学习的深入可以慢慢了解这些功能的强大之处。如果想要了解每个PostgreSQL版本支持的新特性,可以查看官方的特性矩阵。该页面详细列出了不同版本支持的各种功能,方便进行比较,同时还可以通过链接查看每个功能的具体介绍。

PostgreSQL的另一个强大之处在于它的高度可扩展性。在PostgreSQL中,用户可以定义自己的数据类型、索引类型、过程语言等等。市场上存在大量基于PostgreSQL的数据库产品,例如Greenplum、EnterpriseDB、TimescaleDB、Citus等。

如果需要支持,PostgreSQL拥有一个非常活跃的社区,包括中文社区,通过社区通常总是可以解决你的各种问题。另外,许多公司可以提供商业支持。

PostgreSQL已经被实践证明,无论是可管理的数据量还是支持的用户并发数,它都具有高度的可扩展性。在生产环境中已经存在能够管理TB级别数据量的PostgreSQL集群,以及能够管理PB级别数据量的专用系统。

标签:PostgresSQL,功能,PostgreSQL,可扩展性,索引,概述,SQL,类型
From: https://www.cnblogs.com/wdh01/p/17186726.html

相关文章

  • 深度学习概述
    深度学习概述1.深度学习定义深度学习(Deep learning)起源于人工神经网络,它的定义:通过组合低层特征形成更加抽象的高层特征或类别,从而从大量的输入数据中学习有效特征表示,并把这些特征用于分类、回归和信息检索的一种技术。何谓为深度:网络学习得到的函数中,非线性运算组合水平的数量。......
  • 刷机方式概述
    我按我已知的来讲述所有的刷机方式。大致分为物理层、cpu层、启动层、操作系统层、应用程序层、web层、单文件层,刷机的难度都是递简的。物理层刷机方案,俗称烧录,就是将一个系统所用到的所有内容包括启动程序、分区等等打包成一个文件,使用烧录工具如Win32DiskImager、dd,烧录......
  • kubernetes API概述·
    API对象组成部分Group+version+resource三个部分组成常见API(一)/api/--------"/api""/api/v1"常见API(二)/apis/--------"/apis/","/apis/admissionregistration.k8s.io","/apis/admissionregistration.k8s.io/v1","......
  • Prometheus文档--1概述
    概述什么是Prometheus?Prometheus是一个开源监控系统和报警工具,Prometheus将其指标收集并存储为时间序列数据,即指标信息与记录的时间戳以及称为标签的可选键值对一起存储。特征:Prometheus的主要特点是:具有指标名称和键/值对标识的时间序列数据的多维数据模型PromQL,一种......
  • [连载]JavaScript讲义(01)--- JavaScript概述
    ......
  • 01-Hadoop概述
    1.大数据1.1概述指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据主要解决,海量数据的采集、存储和分析计算问题。按顺序给出数据存储单位......
  • SQL删除语句概述
    关于SQLDelete的这篇文章是关于SQLServer中关键语句,函数和操作的SQL必备系列的一部分。要从表中删除行,请使用delete关键字通过数据操作语言(即DML语句)完成。到目前为止,SQL删除操作是所有DML命令中最简单的操作。在执行delete命令时,我们不必担心从表中获取任何形式的数据,我们不必担......
  • 强化学习从基础到进阶-常见问题和面试必知必答[1]:强化学习概述、序列决策、动作空间
    强化学习从基础到进阶-常见问题和面试必知必答[1]:强化学习概述、序列决策、动作空间定义、策略价值函数、探索与利用、Gym强化学习实验1.强化学习核心概念强化学习(reinforcementlearning,RL):智能体可以在与复杂且不确定的环境进行交互时,尝试使所获得的奖励最大化的算法。动......
  • 分布式与集群的概念以及Linux操作系统的概述
    分布式--多台机器,且每台机器上部署不同组件集群--多台机器,且每台机器上部署相同组件而对于大数据的存储而言,单机存储有瓶颈,多台机器进行分布式存储;对于大数据的计算,单机计算能力有限,多台机器进行分布式计算;Linux操作系统确实是没想到想要使用Hadoop还需要重新将Linux的相关知......
  • Linux ELF文件装入与执行概述
    ELF是linux中使用最广泛的一种应用程序格式,为了弄清楚Linux内核是如何讲ELF文件精确映射到指定内存空间,上周末把内核sys_execve部分好好看了一遍,小结如下:1.ELF格式ELF指定了进程中text段、bss段、data段等应该放置到进程虚拟内存空间的什么位置,以及记录了进程需要用到的各种动......