Japin

登高必自卑,行远必自迩

在 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 来实现。

阅读全文 »

最近在做 Oracle 迁移的时候发现一个类型错误,如下所示:

1
ERROR:  invalid input syntax for type numeric: "null"

这个问题其实很简单,就是原始数据里面包含 'null' 的字符串导致的。解决这个问题的办法就是将数据中为 'null' 的异常数据转换为正常数据。

阅读全文 »

最近由于需要从事 Go 语言相关的工作,为此花了约一个星期的时间将《Go 语言实战》这本书过了一遍,对 Go 语言有了一个基本的认识。这本书短小精悍,全书 200 多页,详细介绍了 Go 语言的数组、切片的底层原理,Go 语言的类型系统、并发、通道以及测试。当然部分内容也没有深入的讲解,如映射,其底层的实现介绍的不是很充分。《Go 语言实战》这本书适合有一定语言编程经验的读者。

阅读全文 »
0%