PostgreSQL系列文章---The World‘s Most Advanced Open Source Relational Database

PostgreSQL系列文章



前言

本文主要简单聊一聊PostgreSQL


提示:以下是本篇文章正文内容,下面案例可供参考

一 PostgreSQL是什么?

在这里插入图片描述
上图是官网的一个介绍,翻译过来就是这个世界上最先进的开源关系数据库。

PostgreSQL(发音为 Post-Gres-QL)是一个功能强大的开源对象关系数据库系统,最初设想于1986年,当时被叫做Berkley Postgres Project。该项目一直到1994年都处于演进和修改中,直到开发人员Andrew Yu和Jolly Chen在Postgres中添加了一个SQL(Structured Query Language,结构化查询语言)翻译程序,该版本叫做Postgres95,在开放源代码社区发放。

1996年,再次对Postgres95做了较大的改动,并将其作为PostgresSQL6.0版发布。该版本的Postgres提高了后端的速度,包括增强型SQL92标准以及重要的后端特性(包括子选择、默认值、约束和触发器)。

经过 30 多年的积极开发,在可靠性、功能稳健性和性能方面赢得了良好的声誉。它在国外流行程度比国内高,不过最近几年国内有这种流行趋势了。并且由于它是自由许可证,任何人都可以出于任何目的免费使用、修改和分发PostgreSQL ,无论是私人的、商业的还是学术的。

二 PostgreSQL的简单使用

2.1 PostgreSQL的安装

在这里插入图片描述
直接搜索引擎输入PostgreSQL进入它的官网点击下载就可以看到不同操作系统对应的安装包

本文就不对这个安装过程做太多的介绍了,因为相关资料太多了,下面是一个笔者觉得不错的保姆级安装教程,推荐给大家:

https://developer.aliyun.com/article/745938 作者Yunxi.D

通过这个详细的教程,大家很容易就能安装成功。

三 PostgreSQL 和其他数据库相比如何?

笔者主要通过功能特性、性能、可靠性、是否有技术支持和是否开源免费这几个方面来介绍

3.1 功能特性

PostgreSQL拥有大型数据库中的大多数特性,比如事务、子查询、触发器、视图、外键引用、表的可伸缩性和锁。也有某些大型数据库没有的特性,如用户定义类型、继承、规则和多版本并发控制,以减少锁争用。

3.2 性能

PostgreSQL 的性能可与开源数据库相媲美,各有优劣。

3.3 可靠性

经过 30 多年的积极开发,每个版本都有至少一个月的 beta 测试,官网也有发布历史,通过查阅是可以提供稳定、可靠的版本的,可供生产使用,相比一些数据库这方面笔者觉得是有优势的。

3.4 是否有技术支持

在这里插入图片描述
官网底下是有一个提交Bug的入口的,邮件列表也提供与大量开发人员和用户的联系,以帮助解决遇到的任何问题。而且官方的文档相对来说很完善,PostgreSQL也有相应的中文社区(地址:http://www.postgres.cn/index.php/v2/home)

3.5 是否开源免费

真正意义上的免费开源,PostgreSQL的开源协议是类似于BSD协议或MIT的协议,可以在任何目的下进行分发、闭源或者开源。

许可证地址:https://tldrlegal.com/license/postgresql-license-(postgresql)

在这里插入图片描述
这里不得不说到MySQL,它是已经被Oracle所控制,MySQL同时使用了GPL(GNU General Public License)和一种商业许可(称为双重许可)。

注:

GNU 通用公共许可协议(英语:GNU General Public License,简称GNU GPL或GPL),是一个广泛被使用的自由软件许可协议,最初由理查德·斯托曼为GNU计划而撰写。此许可协议最新版本为“第3版”(v3),2007年6月29日发布。GNU宽通用公共许可协议(英语:GNU Lesser General Public License,一般简称LGPL)是改自GPL的另一个版本,其目的是为了应用于一些软件库。GPL给予了电脑程序自由软件的定义,并且使用“Copyleft”来确保程序的自由被完善的保留,这个协议一直有在演变中,内容表述比较复杂,这很大程度上的使MySQL的开源变得不那么纯粹了。

以下是MySQL中的具体约束:

① 不允许对在MySQL上作出的修改申请专利;
② MySQL上的修改需要公开,且所有权归Oracle所有;
③ 出于纯学术目的、练习目的源码修改也是符合GPL的;
④ Oracle的MySQL企业版或高级功能会涉及费用,并且Oracle公司不允许其它基于MySQL的闭源产品。

四 PostgreSQL与MySQL的比较

特性PostgresqlMySQL
描述The world’s most advanced open source databaseThe world’s most popular open source database
发展是一个纯粹的开源项目笔者觉得不是一个纯粹的开源项目
实现语言CC、C++
图形化工具PgAdminMySQL Workbench
ACIDYesYes
存储引擎单一存储多存储引擎,其中InnoDB 和 MyISAM使用的最多
全文检索YesYes
删除临时表随着数据库的连接的断开而被删除需要手动删除
删除表级联操作:也就是更新、删除父表,将会同步更新、删除子表;而反过来则不变不支持级联操作
清空表对于移除表中的数据,delete是可以的,但是对于一个大表,truncate是更加有效的方式,因为truncate删除表中所有行的时候不需要扫表整个表永久性删除,不可以撤销
自增列串行自动递增
解析功能YesNo
数据类型支持array、hstore、user-defined type等多种高级类型。sql标准类型
无符号整数NoYes
布尔类型Yes内部使用TINYINT(1)表示布尔值
IP地址数据类型YesNo
设置列默认值同时支持常量和函数调用必须是一个常量或CURRENT_TIMESTAMP的TIMESTAMP或DATETIME列
公共表表达式YesNo
EXPLAIN细节输出更详细相对没有那么详细
物化视图Yes(Postgresql将视图概念扩展到下一个级别,允许视图在物理上存储数据,我们将这些视图称为物化视图,物化视图会缓存复杂的查询结果,然后允许定期刷新此结果)No
检查约束YesNo (MySQL忽略CHECK约束)
表继承YesNo
存储过程的编程语言Ruby, Perl, Python, TCL, PL/pgSQL, SQL, JavaScript, etc.SQL:2003 syntax for stored procedures
全外连接YesNo
INTERSECT运算符Yes(Postgresql的INTERSECT运算符将两个或多个SELECT语句的结果集合并到一个结果集中)No
Except运算符Yes(Except运算符通过比较两个或多个quires的结果集来返回行,此返回行存在于第一查询子句而不存在第二查询子句中)No
部分索引YesNo
位图索引YesNo
表达式索引YesNO
覆盖索引Yes (since version 9.2)Yes(MySQL支持覆盖索引,允许仅通过扫描索引来检索数据,而不涉及表数据。对于具有数百万行的大型表,非常有利。)
触发器支持可以在大多数命令类型上触发的触发器,除了那些会影响数据库全局的触发器,例如角色和表空间仅限于一些命令
分区RANGE, LISTRANGE、LIST、HASH、KEY,以及使用RANGE或LIST与HASH或KEY子分区组合的复合分区
任务定时pgAgentScheduled event
连接规模每个新连接都是一个操作系统进程每个新连接都是一个操作系统线程
SQL兼容性兼容大部分SQLMySQL是部分兼容SQL的。例如,不支持检查约束
适用性执行复杂查询时,可以用PostgreSQL,性能很突出当只需要读取速度时,MySQL在OLAP和OLTP系统中表现良好。
支持JSON支持JSON和其他NoSQL特性,比如原生XML支持。它还允许为JSON数据建立索引,以便更快地访问。MySQL支持JSON数据类型,但不支持任何其他NoSQL特性。
默认值默认值只能在系统级进行修改默认值可以在会话级和语句级被覆盖
B-tree索引运行时合并动态转换恰当时机可以用两个甚至更多的B树索引
对象数据非常好的对象统计相当好的对象统计


如有不足后续补充,欢迎各位大佬指出不足之处

总结

以上就是笔者对PostgreSQL的一些简单介绍。

著作权归NoLongerConfused所有。商业转载请联系NoLongerConfused获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NoLongerConfused

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值