Japin

登高必自卑,行远必自迩

Oracle 迁移到 PostgreSQL 中最常见的问题就是 DUAL 表的问题。在 Oracle 数据库中,每个查询都必须跟随一个 FROM 子句,这是强制性的。然而在 PostgreSQL 数据库中,FROM 子句是可选的。本文记录了如何将 Oracle 中的 DUAL 表迁移到 PostgreSQL 数据库中。

阅读全文 »

数据库通常都提供了一系列预定义的聚合函数(Aggregate Functions),例如 MAX,MIN,SUM 等,它们对一组数据进行操作。这些预定义的聚合函数通常只能处理标量类型,不能处理诸如对象类型等复杂的数据类型,当前大部分数据库都提供了为复杂数据类型自定义聚合函数(User-Defined Aggregate Functions)的功能。本文简要介绍 Oracle 中的自定义聚合函数以及如何迁移到 PostgreSQL 数据库中。

阅读全文 »

PostgreSQL 是世界上最好的 OLTP 数据库(OLTP,即在线事务处理)之一。然而,它可以做的不仅仅是 OLTP。PostgreSQL 提供了许多与更具 OLAP 风格的工作负载相关的附加功能。其中一个特性称为“GROUPING SETS”(GROUPING SETS,即分组集)。

阅读全文 »

Boyer-Moore 投票算法是流行的最优算法之一,它用于在给定元素中找出出现次数超过 N/2 的元素。它需要对给定元素进行 2 次遍历,其时间复杂度为 O(N),空间复杂度为 O(1)

阅读全文 »

强化 PostgreSQL 变得越来越重要。如今,安全是王道,人们想知道如何确保 PostgreSQL 的安全。我们中的一些人可能还记得近年来发生在 MongoDB 身上的事情,我们当然希望在 PostgreSQL 世界中避免类似的安全问题。MongoDB 的遭遇实际上是令人震惊的:数以千计的数据库因为糟糕的默认安全设置而被勒索–这绝对是一场噩梦,不仅大大损害了 MongoDB 的声誉,也损害了整个行业的声誉。PostgreSQL 人员尽其所能避免在我们的生态系统中重复出现这种情况。

当有人在谈论您的公司时,标签 #ransomware (勒索软件)并不是您想要看到的。为了避免一些最常见的问题,我们编制了一个 “PostgreSQL 最佳安全问题”,它可以作为改进设置的 12 个步骤的指南。

阅读全文 »

最近由于工作原因,需要在 Golang 中创建一个定时任务来执行一些工作。在 Linux 中,我们可以通过 crontab 来实现这个功能;在 Golang 中也有一个名为 cron 的包,通过它我们可以很方便地在 Golang 中实现定时任务,本文简要记录了 cron 的使用方法。

阅读全文 »

本文简要记录一下如何使用 Go 语言来访问达梦数据库。达梦数据库随安装包提供了 Go 语言的 driver,目前该 driver 仅支持 Windows 和 Linux 操作系统,不支持 MacOS 系统。

阅读全文 »

在 PostgreSQL 数据库中有三种 JOIN(连接)策略,它们的工作方式截然不同。如果 PostgreSQL 选择了错误的策略,查询性能会受到很大的影响。这篇文章解释了这些连接策略,如何通过索引来支持它们,它们存在什么问题,以及如何调整连接从而获得更好的性能。

阅读全文 »

LATERAL 连接是 PostgreSQL 和其他关系型数据库(如 Oracle、DB2 和 MS SQL)中鲜为人知的功能之一。然而,LATERAL 连接是一个非常有用的功能,本文将带你看看用它们能完成什么有意义的事情。

阅读全文 »

在 SQL 和 PostgreSQL 社区中,大多数人都使用过许多数据库引擎提供的 LIMIT 子句。然而,很多人不知道的是,LIMIT/OFFSET 是不符合标准的,因此不能移植。处理 LIMIT 的正确方法基本上是使用 SELECT ... FETCH FIRST ROWS。然而,还有更多的东西没有被发现。

阅读全文 »
0%