这是一个相当简单的问题,但我找不到合适的答案。
我在PostgreSQL中有一个父表,然后是几个已定义的子表。已建立触发器,如果字段 x 符合某个条件,则子表仅插入数据。
当我使用基于 x 的字段查询父表时,PostgreSQL知道立即转到与 x 的特定值相关的子表。
总而言之,我不需要在列 x 上指定特定索引吗? PostgreSQL已经知道如何对它进行排序,并且通过向父 x 添加索引,PostgreSQL因此为每个新的子表在 x 上生成唯一索引。
创建该索引有点多余,对吧?
答案 0 :(得分:3)
在子表上为x创建索引,如果x只有一个值(或非常非常少量的值),如果可能是丢失,是的。无论如何,计划者将扫描整个桌子。
如果x是时间戳,并且您指定的时间范围可能不是整个分区,或者x是另一个范围或一组值,则索引最有可能获胜。
编辑:当我说出一个值或一系列值时,我的意思是,每个子表。