如果不是领导强制要求,可能基本不会留意到这款号称世界上性能最弱小的开源数据库——PostgreSQL。如果你不读这篇文章,或者也会错过一个蠢蠢欲动想挤进前三的优良数据库。

为了可能纯熟使用,特意买书钻研,发现这款数据库还真有点意思。汇总一篇文章与大家分享,目标只有一个:让大家多少理解一下这款数据库。

你会发现与Mysql相比,PostgreSQL的社区并不沉闷,中文材料能够说是少得可怜,在数据库中排行老四。前三都不肯定全用过,谁会去记住老四呢。但上面的数据不得不让咱们注意。

上面是DB-Engines数据库风行度排行榜2020年7月份的数据。

在老大老二的评分一直降落的状况下,这么一个没有后盾的开源数据库,居然励精图治,突飞猛进。有没有像春秋战国时的秦国,是时候得注意一下它了。

上面再看看这几年PostgreSQL的增速状况。

图中遥遥领先其余数据库,追赶前三名的数据库,就是PostgreSQL,不少大厂曾经在应用了。

PostgreSQL是一款开源的对象关系型数据库,也就是说与Mysql的性能统一。在欧美地区应用比拟宽泛,因其限度严格、实现谨严,在金融、电信等畛域利用比拟多。

对照Mysql来理解一下PostgreSQL(以下简称PG):

1、在SQL的规范实现上比MySQL欠缺,而且性能实现比拟谨严;

2、存储过程的性能反对要比MySQL好,具备本地缓存执行打算的能力;

3、PG对表连贯反对较完整,优化器的性能较完整,反对的索引类型很多,简单查问能力较强;

4、PG主表采纳堆表寄存,MySQL采纳索引组织表,可能反对比MySQL更大的数据量。

5、PG的主备复制属于物理复制,绝对于MySQL基于binlog的逻辑复制,数据的一致性更加牢靠,复制性能更高,对主机性能的影响也更小。

6、MySQL的存储引擎插件化机制,存在锁机制简单影响并发的问题,而PG不存在。

下面是比拟抽象的概述,上面给大家汇总一下读相干书籍发现。

1、数据库、表等操作基本相同,与Mysql不同的是PG的主键自增采纳了独立的序列,而后将序列赋值给对应的字段来实现自增。

2、PG的字段级、表级的束缚也特地有意思。能够通过CHECK关键字来束缚指定字段是否大于或小于某个阈值(仅举例,不限于此)。针对表级别的束缚,还能够通过CHECK关键字来束缚两个字段之间的关系,比方:CHECK(createtime < parentcreatetime)。是不是十分有意思?

3、数据类型中PG提供了money类型,可基于时区来显示对应的货币格局,如“$1,000.00”。

4、数据类型中反对了丰盛的日期工夫类型,而还有相应的运算操作,加减乘除包罗万象。

5、数据类型中还反对了点、线、线段、矩形、门路、多边形、圆等几何图形,尽管不会常常用到,有便是一件很Cool的事。当然,也少不了JSON和数组的类型。

6、PG提供了数学函数、字符串函数、二进制字符串函数、数据类型格式化函数、日期和工夫函数、位串函数、枚举函数、几何函数、JSON函数、范畴函数、数字函数等等,丰盛到目迷五色。

7、SQL查问中提供了递归查问,内置了大量的窗口函数。

8、索引反对B-tree索引、Hash索引、GiST索引、SP-GiST索引、GIN索引、BRIN索引。足够丰盛。

9、视图反对物化视图和一般视图。

10、反对表继承,面向对象编程的敌人是不是对此很亲切。

11、PG反对根本的表分区性能更,PG10之后反对申明式内置表分区性能。该性能反对把大表拆分成更小的物理分片,别离进行独立存储。

12、PG反对在大型事务中通过应用保留点(SAVEPOINT)来回滚局部事务。

13、PG对SQL语句进行了逻辑优化和物理优化。

当然,还有其余很多有意思的性能期待挖掘。读完上述内容你是不是也有趣味理解一下?那这篇文章的目标就达到了。

最初,写这篇文章有两个目标。第一,很明确,给大家介绍一款数据库。第二,是想推广一个学习晋升的理念:纵情去去尝试理解新事物,致力冲破本人的舒服区,这往往会给本人带来十分大的播种。


<center>程序新视界:精彩和成长都不容错过</center>