找到并修复PostgreSQL问题更快

PostgreSQLPostgreSQL具有一组功能丰富的索引功能,还有很多文章解释语法、用法,和价值的指数。在这篇文章中,我将编写基本的和有用的查询的状态数据库索引。人们开发数据库和一段时间后,当有需求要做软件的体系结构的变化,他们忘记做前面的索引的清理。这个方法创建了一个烂摊子,有时减缓因为太多的索引数据库。每当我们做一个更新或插入,该指数将随着更新实际的表,因此有必要进行清理。

有一个wiki页面,有一些相关查询PostgreSQL索引维护

在写作之前查询我想介绍pg_index目录表。表包含的信息索引。这是基本的目录表,所有基于索引视图使用相同的表。

1 -有时你需要多少索引表。这个查询会显示模式限定表名和其索引名称。

2 -我们都知道,索引是一个性能特性,但随着,它还可以用于保证唯一性。但确保唯一性,我们需要一个单独的类型的索引称为唯一索引。检查是否一个索引是独一无二的,pg_index上有一个专栏叫“indisunique”标识的唯一性索引。

3 -有一个非常简单的办法PostgreSQL指数的大小。这是一个查询列出PostgreSQL的大小。

4 -这里是一个列表的索引与总表的大小和规模指数,这是非常有用的比较你的表的大小相应的索引。很好知道的大小表,索引和表的总大小。

pg_relation_size:函数的大小关系。它是用来表/索引的大小。

pg_total_relation_size:这是一个特殊函数,它的总大小表连同其所有索引。

5 -索引的查询。这个查询将显示创建索引的查询。

6 -以防你的指数就会败坏或臃肿,您需要构建索引。同时,你不想阻止操作表,这同时重建索引命令是你的选择。

7 -PostgreSQL有许多像BTree指数方法,散列,林,要点,杜松子酒。有时我们想创建一些特定的索引列但无法这样做。PostgreSQL的局限性,一些指标无法创建一些数据类型和运算符,这是有道理的。例如,哈希索引只能用于相等操作符。这里是一个列表的查询来获得支持的数据类型为特定索引。

8 -这个查询会发现未使用索引。如果index_scans是0或接近0,那么您可以将这些索引。但是要小心,也许这些索引是唯一的目的。

9 -查询用于查找一个重复的索引。在这个例子中,pgbench_accounts有两个相同的索引。不需要使用一个不同的名称有多个相同的索引表。正如我们已经讨论过的那样,在更新/插入的情况下,所有的索引更新以及实际的表,这损害了性能。

结论

PostgreSQL目录表来存储索引信息,因此,我们可以写出尽可能多的查询我们所需要的。这个博客显示一些基本的查询和展示了如何使用目录表编写查询。


我们的白皮书”为什么选择PostgreSQL ?”看着PostgreSQL的特点和优点,提出了一些实际的用法示例。我们还研究如何对企业有用PostgreSQL从Oracle迁移。

下载