创建包含生成列的表:CREATE TABLE orders (
id bigint PRIMARY KEY,
amount numeric(12,2) NOT NULL,
created_at timestamptz NOT NULL,
day date GENERATED ALWAYS AS (created_at::date) STORED,
amount_cents integer GENERATED ALWAYS AS (round(amount*100)) STORED
);
为生成列创建索引与查询:CREATE INDEX idx_orders_day ON orders(day);
CREATE INDEX idx_orders_amount_cents ON orders(amount_cents);
EXPLAIN ANALYZE SELECT count(*) FROM orders WHERE day = current_date;

发表评论 取消回复