eco*_*gic 6 postgresql performance
在 SQL 中,如果我想要查询的所有内容(在 where 条件中)是字段不为空时,是否所有关于索引的常见考虑都适用?
我可以应用索引的特殊配置来涵盖这种特定情况吗?
例如:
select id
from Accesses
where token is not null;
Run Code Online (Sandbox Code Playgroud)
token
如果我必须搜索特定的令牌值,是否值得尽可能多地添加索引?
我的数据库是 Postgres。
SELECT id FROM accesses WHERE token IS NOT NULL;
Run Code Online (Sandbox Code Playgroud)
这个特定查询的完美索引是部分索引:
CREATE INDEX accesses_foo_idx ON accesses(id) WHERE token IS NOT NULL;
Run Code Online (Sandbox Code Playgroud)
指标条件是重要的部分。
最重要的是,由于您只检索id
索引覆盖的内容,因此您可以从中获得仅索引扫描(如果表足够真空)。
有效性随着这种方式从索引中排除的行数(以及表中的列数)而增加。即:特别有益于(在具有更多列的表中)中的少数非空值token
。
有关的:
归档时间: |
|
查看次数: |
804 次 |
最近记录: |