如果不是领导强制要求,可能基本不会留意到这款号称世界上性能最弱小的开源数据库——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>