我有一张大桌子:
CREATE TABLE "orders" (
"id" serial NOT NULL,
"person_id" int4,
"created" int4,
CONSTRAINT "orders_pkey" PRIMARY KEY ("id")
);
所有请求中的90%是关于person_id
过去2-3天的订单,例如:
select * from orders
where person_id = 1
and created >= extract(epoch from current_timestamp)::int - 60 * 60 * 24 * 3;
我怎样才能提高性能?
我知道分区,但是现有的行怎么办?看起来我需要每2-3天手动创建一次INHERITS
表。
发布于 2013-12-23 12:12:47
Suggesstion:
可能对你有帮助。由于表的大小正在增长,您的查询性能将逐渐下降。最好维护3-5天(如果您非常确定只访问2-3天的)记录,并定期将旧记录迁移到备份表。
https://stackoverflow.com/questions/20738000
复制相似问题