Postgres数据库继承,子表的索引

时间:2015-01-09 10:48:32

标签: postgresql inheritance indexing

我正在根据字段商店ID获得父表产品和子表product_1 ... product_N。每天为所有商店明确(并在不同时间)执行UPDATE操作。所以现在我想在某个字段上添加索引,我不确定哪个表应该有这个索引。只有父表或每个子表应该有自己的索引?或两者兼而有之?

UPD

UPDATE product p SET
 ...
FROM newitems n
WHERE n.new_prod='0' AND
      n.internal_product_id is not null AND
      p.sku = n.sku AND
      p.distributor_id=M and
      p.store_id=N;

我想在sku字段上添加索引以加快连接速度。

2 个答案:

答案 0 :(得分:2)

应在每个表上明确添加索引。索引父表不会影响子表。

答案 1 :(得分:0)

第一次创建子表时,可以指定自动继承父表的索引。 (在创建子表之后,我还没有找到一种激活该方法的方法。)

喜欢...包括所有表明我们将使用默认值进行复制, 主键和索引定义。现在提供了 前瞻性管理所有笔记表的方式。 唯一性标准仍会在每个表的基础上强制执行。” https://dzone.com/articles/table-inheritance-whats-it-good-for

CREATE TABLE notes (
    id serial primary key,
    created_at timestamp not null default now(),
    created_by text not null,
    subject text not null,
    body text not null,
);


CREATE INDEX idx_notes_subject ON notes (subject);
CREATE TABLE invoice_notes (
    child_field text not null,
    LIKE notes INCLUDING INDEXES, -- automatically inherit parent indexes
) INHERITS (notes);