
索引是良好性能的关键。然而,人们经常问:有没有替代 btree 索引的替代方案?我们可以在PostgreSQL中做更小的索引吗?我们可以更快地在PostgreSQL中创建索引吗?我们如何在数据仓库中编制索引?
PostgreSQL 中的索引类型
我们如何确定PostgreSQL中实际存在哪些类型的索引?以下是它的工作原理:
|
加载示例数据
|
|
|
创建索引:btree 的性能问题
创建一个标准的btree索引将花费我们35分钟:
|
|
现在让我们再次创建相同的 btree 索引,看看会发生什么
|
|
在工艺表中,我们可以看到所有所需的内核都在全速工作以实现这一目标:
|
|
|
|
|
创建第二个索引:
|
使用树运行查询
运行查询并查看到目前为止 btree 索引做了什么
|
|
请注意,我稍微缩小了范围,以确保我们也获得 10 万行。因此,结果集的大小大致相同:
|
|
请注意,数据量是相同的 - 所有有变化的是磁盘上数据的分布:
|
|
BRIN指数来救援?
首先,我们将创建一个索引:
|
|
|
比较查询:
|
此外:请记住,相关性确实很重要。


文章转载自PostgreSQL考试认证中心,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




