我们有一张表,记录了近20亿个事件。根据我们的数据模型,每个事件都由4列组合主键唯一标识。排除主键,每个单独的不同列上有5个B树索引。所以共有6个B树索引。
记录的事件跨越多年,现在我们需要删除超过1年的数据。
我们有一个time
列,每个事件都记录了很长的值。我们使用以下查询,
delete from events where ctid = any ( array (select ctid from events where time < 1517423400000 limit 10000) )
指数是否得到更新?
在测试期间,它没有。
插入后,
total_table_size - 27893760
table_size - 7659520
index_size - 20209664
删除后,
total_table_size - 20226048
table_size - 0
index_size - 20209664
可以完成Reindex
Command: REINDEX
Description: rebuild indexes
Syntax:
REINDEX { INDEX | TABLE | DATABASE | SYSTEM } name [ FORCE ]