gpt4 book ai didi

postgresql - 对于几乎全为假的 bool 列,部分索引是个好主意吗?

转载 作者:行者123 更新时间:2023-11-29 12:17:08 25 4
gpt4 key购买 nike

我有一张表:Parent,它有很多Children(其他表中每个子行都有一个parent_id)。

所以我在 parent_id 上有 children 表 的数据库索引。效果很好,因为我一直在接特定 parent 的 child ..

现在我在 children 表上引入了 :disabled bool 列。大多数情况下,我只会获取已启用的子项(已禁用 = false)。

添加这样的部分索引是否明智,因为这是我使用最多的查询?

使用 btree (parent_id, disabled) WHERE (disabled = false) 在 child 上创建索引 index_for_parent_and_enabled

或者因为残疾 child 很少,是否只将索引保留在 parent_id 列上更好?

Obs:我正在使用 postgres

如果对此有任何评论,我将不胜感激。 :)

最佳答案

如果您在 child(parent_id) 上有一个外键,建议在该列上有一个索引,这样对父表的操作就不必扫描整个子表。

如果你平时查询

... WHERE parent_id = $1 AND NOT disabled

只有少数记录未禁用,最好有一个额外的索引

CREATE INDEX ON child (parent_id) WHERE NOT disabled;

在索引中禁用 没有任何意义,因为条件已经在 WHERE 表达式中。那只会使指数膨胀。

关于postgresql - 对于几乎全为假的 bool 列,部分索引是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47329858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com