Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql postgres中的表继承需要索引吗?_Postgresql_Inheritance_Indexing_Unique - Fatal编程技术网

Postgresql postgres中的表继承需要索引吗?

Postgresql postgres中的表继承需要索引吗?,postgresql,inheritance,indexing,unique,Postgresql,Inheritance,Indexing,Unique,这是一个相当简单的问题,但我找不到确切的答案 我在PostgreSQL中有一个父表,然后是几个已定义的子表。触发器已经建立,并且只有当字段(如字段x)满足特定条件时,子表才会插入数据 当我使用基于x的字段查询父表时,PostgreSQL知道立即转到与x的特定值相关的子表 总而言之,我不需要在x列上指定特定的索引,是吗?PostgreSQL已经知道如何对其进行排序,通过向父表x添加索引,PostgreSQL可以为每个新的子表在x上生成唯一的索引 创建索引有点多余,对吗 如果x只有一个值(或非常、非

这是一个相当简单的问题,但我找不到确切的答案

我在PostgreSQL中有一个父表,然后是几个已定义的子表。触发器已经建立,并且只有当字段(如字段x)满足特定条件时,子表才会插入数据

当我使用基于x的字段查询父表时,PostgreSQL知道立即转到与x的特定值相关的子表

总而言之,我不需要在x列上指定特定的索引,是吗?PostgreSQL已经知道如何对其进行排序,通过向父表x添加索引,PostgreSQL可以为每个新的子表在x上生成唯一的索引


创建索引有点多余,对吗

如果x只有一个值(或非常、非常少的值),则在子表上为x创建索引如果可能丢失,则是。无论如何,计划者都会扫描整张桌子

如果x是一个时间戳,并且您指定的时间范围可能不是整个分区,或者如果x是另一个范围或一组值,那么索引很可能是一个胜利


编辑:当我说一个值或一系列值时,我指的是每个子表。

x是一个预定义列表的站点名称。因此,例如,父表可能是'city_description',列为'city'。假设我有10个子表,'chicago\u city\u description','dallas\u city\u description','nyc\u city\u description',我的触发器根据'city'的值为子表做出决策。此列永远不会是时间戳。所以去掉索引是可以的?如果x是一个站点名,并且每个子表有一个站点名,那么去掉索引。