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

【postgresql】 基础知识学习

PostgreSQL是一个高度可扩展的开源对象关系型数据库管理系统(ORDBMS),它以其强大的功能、灵活性和可靠性而闻名。

官网地址:https://www.postgresql.org/

中文社区:文档目录/Document Index: 世界上功能最强大的开源数据库...

下载地址:PostgreSQL: Linux downloads (Red Hat family)

关键特点和优势

  1. 开放源代码:PostgreSQL是完全开源的,这意味着用户可以自由地使用、修改和分发该软件,而无需支付许可费用。

  2. 标准兼容性:PostgreSQL严格遵循SQL标准,支持大多数SQL语言的特性,包括复杂的查询、事务、触发器等。

  3. 可扩展性:用户可以通过添加新的数据类型、函数、操作符和聚集函数来扩展数据库的功能。

  4. 多版本并发控制(MVCC):PostgreSQL使用MVCC来支持高并发的读写操作,同时保持数据的一致性和隔离性。

  5. 数据完整性:支持ACID事务,确保数据库操作的原子性、一致性、隔离性和持久性。

  6. 支持多种编程语言:PostgreSQL提供了多种编程语言的接口,包括C、C++、Java、.NET、Perl、Python、Ruby等。

  7. 丰富的数据类型:除了标准的数值、字符串和日期时间类型外,还支持数组、JSON、XML、HSTORE等高级数据类型。

  8. 全文搜索:内置的全文搜索功能,可以高效地对文本数据进行索引和搜索。

  9. 空间数据支持:通过PostGIS扩展,PostgreSQL可以存储和查询地理空间数据。

  10. 高可用性和灾难恢复:支持流复制、逻辑复制和点对点复制,提供多种高可用性和数据恢复解决方案。

  11. 性能:PostgreSQL不断优化其性能,包括查询优化器、索引结构和并行处理能力。

  12. 社区支持:拥有一个活跃的全球社区,提供持续的开发、支持和创新。

  13. 安全性:提供多层次的安全特性,包括角色管理、访问控制、SSL支持等。

  14. 跨平台:可以在多种操作系统上运行,包括Linux、Unix、Windows等。

前世:起源与发展

1. 起源

PostgreSQL 的起源可以追溯到 1986 年,当时它作为加州大学伯克利分校的 POSTGRES 项目的一部分被开发出来。这个项目的目的是创建一个能够处理复杂数据类型和用户定义操作的数据库系统。

2. 早期发展
  • 1987-1994:POSTGRES 项目在伯克利进行了多次版本迭代,引入了许多现代数据库系统的核心概念,如规则系统、复杂数据类型和查询语言。

  • 1995:Andrew Yu 和 Jolly Chen 在 POSTGRES 中加入了 SQL 语言解释器,使其更名为 Postgres95。

  • 1996:项目再次更名为 PostgreSQL,以强调其对 SQL 标准的支持,并发布了第一个公开发行版 PostgreSQL 6.0。

今生:成熟与广泛应用

1. 技术演进
  • 2000 年代:PostgreSQL 引入了许多新特性,如子查询、视图、触发器、存储过程和事务隔离级别等。

  • 2010 年代:PostgreSQL 继续增强其功能,包括 JSON 支持、全文搜索、窗口函数、并行查询等。

  • 2020 年代:PostgreSQL 13 和 14 版本进一步优化了性能,增强了数据复制和备份功能,并引入了更多高级特性。




http://www.lryc.cn/news/394203.html

相关文章:

  • 按键控制LED流水灯模式定时器时钟
  • 【Docker安装】OpenEuler系统下部署Docker环境
  • 小程序 使用 UI 组件 Vant Weapp 、vant组件样式覆盖
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • 迭代器模式在金融业务中的应用及其框架实现
  • 浏览器插件利器-allWebPluginV2.0.0.14-stable版发布
  • 机器学习训练之使用静态图加速
  • 数据结构速成--图
  • 昇思25天学习打卡营第12天|FCN图像语义分割
  • 昇思MindSpore学习笔记4-03生成式--Diffusion扩散模型
  • Go:hello world
  • JVM专题之内存模型以及如何判定对象已死问题
  • vscode使用Git的常用操作
  • RPC与REST
  • 计数排序的实现
  • 【Qt】QTableWidget设置可以选择多行多列,并能复制选择的内容到剪贴板
  • 跨越界限的温柔坚守
  • Vue3 对于内嵌Iframe组件进行缓存
  • L04_MySQL知识图谱
  • 什么是CNN,它和传统机器学习有什么区别
  • 游戏开发面试题3
  • postman请求访问:认证失败,无法访问系统资源
  • Apache Seata新特性支持 -- undo_log压缩
  • Java中的软件架构重构与升级策略
  • 设置Docker中时区不生效的问题
  • LeetCode436:寻找右区间
  • 前端JS特效第22集:html5音乐旋律自定义交互特效
  • pyrender 离线渲染包安装教程
  • XSS平台的搭建
  • 【持续集成_03课_Jenkins生成Allure报告及Sonar静态扫描】