Japin

登高必自卑,行远必自迩

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。然而,还有更多的东西没有被发现。

阅读全文 »

我在 Emacs 中使用 gtags (GNU global source code tag system) 来作为代码导航的基本工具,它默认标记根目录及其子目录,但是有一些子目录其实我并不想要被标记。本文简要记录一下如何告知 gtags 忽略某些目录或文件。

阅读全文 »

本文简要记录一下如何将 Oracle 数据库中的 sys_connect_by_path() 函数迁移到 PostgreSQL 数据库中。

函数 sys_connect_by_path() 通常是与 Oracle 中的 connect by 子句一起使用的,而 connect by 子句转换到 PostgreSQL 中时通常是使用 WITH RECUSIVE 来实现。

阅读全文 »
0%