我有一个表简要结构是这样的:当行数增加时,PostgreSQL查询如何减慢速度?
tn(id integer NOT NULL primary key DEFAULT nextval('tn_sequence'),
create_dt TIMESTAMP NOT NULL DEFAULT NOW(),
...............
deleted boolean);
create_dt
是时间戳当行插入到数据库中。
deleted
表示行已经或不再有用。
而且我有以下疑问:
select * from tn where create_dt > (NOW() - interval '150 seconds) and deleted = FALSE;
select * from tn where create_dt < (NOW() - interval '150 seconds) and deleted = FALSE;
我的问题是,这些查询将如何减缓时的行数增加吗?例如,当行数超过10K,20K或100K时,它会对速度产生很大影响吗?有什么办法可以优化这些查询吗?请注意,每隔5秒我会将大于150秒的行“删除”列变为“TRUE”。
'主键'意味着'非空',所以后面的不是必需的 –