【发布时间】:2017-03-07 17:29:53
【问题描述】:
我的主要问题是,在单个表中,未包含在 WHERE 子句中的记录数是否会影响 SELECT、INSERT 和 UPDATE 的查询性能?
假设我有一个包含 2000 万行的表,并且该表有一个索引 error 字符串列。
假设其中 19,950,000 条记录为此列设置了 0,50,000 条记录设置为 NULL。
我的查询是SELECT * FROM pending_emails WHERE error IS NULL。
在我的应用程序中执行一些逻辑之后,我需要按 ID 更新这些相同的记录以设置它们的错误:
UPDATE "pending_emails" SET "error" = '0' WHERE "pending_emails"."id" = 46
UPDATE "pending_emails" SET "error" = '0' WHERE "pending_emails"."id" = 50
我正在尝试确定是否可以在数据库中保留“已完成”记录而不影响我正在使用的活动记录的性能,或者我是否应该删除它们(不是首选)。
【问题讨论】:
标签: database postgresql indexing