PostgreSQL11快速入门(一)-PostgreSQL 简介
PostgreSQL11快速入门(一)-PostgreSQL 简介
1. 背景
在最近一两年时间里,项目里面一直使用 PostgreSQL ( 后面简称 PG )作为主力数据库。 通过不断的学习以及实践, 从开始的抵触到现在对 PG 的基础功能以及一些特性有了一定的掌握。
作为一名研发人员应该认识到 看到的知识不一定是掌握的知识 。只有不断学习以及总结,才能真正掌握一门技术的用法,然后灵活运用到实际的项目中。 因此我决定写几篇博客,梳理下 PG 相关的知识以及固定。
博客主要还是围绕着 PG 的基础入门,包括 PG 的历史、对比常用的关系型数据库、基本的 SQL 语法基础、数据类型等。 文章的章节有一部分是参考 PG11 官网的文档来定标题,同时部分内容也是参考 PG11 的文档内容,做了一定的总结以及梳理。
内容主要大致涉及如下内容:
- 数据库的历史、简单介绍、在国内的商业定制版本。
- SQL 标准、主流关系型数据库对比。
- PostgreSQL 简单的安装配置。
- PostgreSQL 数据库对象的基本概念。
- PostgreSQL 基本数据类型以及应用特点。
- PostgreSQL 基本的增删改查等。
- PostgreSQL 在实际项目开发中常用的数据查询方式。
- PostgreSQL 函数跟存储过程在项目开发中的运用。
- PostgreSQL 视图的运用。
从项目开发的角度来讲,上面的内容基本掌握基本就算是对 PostgreSQL 基本入门了。一些其他的数据库技能,可以在后续项目开发过程中再慢慢深入学习。
2. 关系型数据库概念
关系型数据库是一种基于关系模型的数据库 , 它使用表格(二维表)来存储和组织数据。
表格中的每一行称为一条记录 , 每一列称为一个字段。
通过表与表之间的关联关系,可以高效地存储和查询数据。
## 3. 什么是PostgreSQL
PG 是一个高度稳定且功能丰富的 开源关系数据库系统,它支持 SQL(结构化查询语言)并提供许多现代数据库的高级特性。官网的口号就是:
PostgreSQL: The World’s Most Advanced Open Source Relational Database
PostgreSQL:世界上最先进的开源关系数据库
PG 的图标是一个象征性的象征,被称为小象。 这个图标是一个简单而卡通化的大象头部,通常呈现为蓝色或灰色。
PG 以其可靠性、稳定性和性能而闻名 , 被广泛应用于各种领域,包括金融、政府、教育、医疗等。简单的概括下特点:
开源: PostgreSQL 是一个开源软件, 任何人都可以免费使用、修改和分发。 国内很多厂商的数据库都依赖于 PostgreSQL 进行定制。
跨平台: PostgreSQL 可以运行在常规的操作系统上,包括 Linux、Unix、macOS 和 Windows。
可扩展: PostgreSQL 支持多种编程语言,如 C/C++、Java、Python等,可以方便地扩展其功能。官方不支持的功能,你可以自己写插件去支持。
安全: PostgreSQL 提供了多种安全特性,如角色和权限管理、数据加密、SSL connections 等。
支持复杂查询: PostgreSQL 支持复杂的 SQL 查询,包括子查询、连接、聚合函数等。
支持大数据量: PostgreSQL 可以高效地处理很大级别的数据。
4. PostgreSQL 的发展历史
PG 最早的起源可以追溯到 1986 年,最初名为 POSTGRES,由伯克利加州大学的计算机科学系开发,这个时候数据库还是不支持 SQL 语言的。
1994 年,两个加利福尼亚大学的研究生 Andrew Yu 和 Jolly Chen 增加了一个 SQL 语言解释器,同时改名为 Postgres95 。
在1996年为了突出该数据库全新的 SQL查询语言 ,Postgres95 被重命名为PostgreSQL。 同时发布了 PostgreSQL 的第一个版本 PostgreSQL 6.0 ,这标志着 PostgreSQL 正式诞生。此后,PostgreSQL 不断发展和完善,先后发布了多个重要版本,每个版本都引入了许多新特性和改进。同时代码是由世界各地的开源爱好者进行维护,不会被商业公司的利益进行驱动开发。
5. PostgreSQL 在国内的商业版本
由于 PG 拥有宽松的许可证,任何人都可以自由地使用、修改和分发这个数据库系统,无论是出于私人、商业还是学术目的,均无需支付费用。
国内有很多厂商的数据库产品就是基于 PG 进行开发了自己的数据库产品,这些产品在性能优化、特定功能增强以及满足特定行业应用等方面进行了大量的扩展和定制。
下面是一些突出的例子:
5.1. 阿里云 PolarDB
PolarDB 是阿里云推出的下一代关系数据库服务,它兼容 MySQL、PostgreSQL 以及 Oracle。PolarDB 基于 PostgreSQL 的版本提供了高性能的数据库解决方案,特别适用于处理大规模数据库任务。
特点: - 高性能:与传统的 PostgreSQL 相比,PolarDB 提供更高的查询效率和处理能力。 - 高可扩展性:支持在线水平扩展和垂直扩展,能够快速响应业务增长需求。 - 成本效益:通过存储和计算分离架构,降低了运维成本,提高资源使用效率。
5.2. 腾讯云 TDSQL-C
TDSQL-C 是腾讯云基于 PostgreSQL 开发的分布式数据库,适用于金融、游戏等行业的高并发、高可用性需求。
特点: - 高可用性:提供多副本冗余,自动故障转移和数据备份,确保业务连续性。 - 兼容性:高度兼容 PostgreSQL 和 MySQL,支持无缝迁移。 - 性能优化:针对云环境和大数据量场景进行了特别优化。
5.3. 华为云 GaussDB
GaussDB 是华为云推出的一种基于 PostgreSQL 的分布式数据仓库服务,适用于大数据分析和商业智能。 华为家的 PG 数据库有好多款,换来换去,有时候一下子分不清楚。
特点:
- 数据仓库优化:专为数据仓库和大数据分析设计,提供了列式存储和高效的数据压缩技术。
- 智能优化:采用机器学习算法自动优化查询,提高查询效率。
- 安全可靠:提供高级的数据加密和访问控制,保障数据安全。
这些产品都是在原有 PostgreSQL 的基础上根据中国市场的特定需求进行了优化和增强,使其更适合本地企业和组织的使用场景,例如在高并发处理、大数据分析、云环境适应性以及成本效益上都有显著提升。同时一个数据库会同时兼容多种数据库协议,比方说上面列举的数据库除了支持 PG,也会支持 MySQL 等。
6. PostgreSQL 11 的新特性
PostgreSQL 11 是 PostgreSQL 的一个重要版本,于 2018 年 10 月发布。这个版本引入了许多新特性和改进,主要包括:
分区表增强: PostgreSQL 11 对分区表进行了显著的性能优化,特别是对于数据插入和查询操作。
并行查询改进: 增强了并行处理能力,使得大数据量的查询可以更有效地利用系统资源。
存储过程改进: 在此版本中引入了 SQL 标准的存储过程,支持事务中的提交和回滚操作。
其他改进: 还包括 SCRAM-SHA-256 身份认证、可插拔的表存储接口 、JIT 编译等。
7. 参考链接
PostgreSQL 官方网站: https://www.postgresql.org/
PostgreSQL 历史:https://www.postgresql.org/docs/11/history.html
PostgreSQL 11 新特性: https://www.postgresql.org/docs/11/release-11.html
DB-Engines 数据库排名: https://db-engines.com/en/ranking