首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模块查询的优化

问模块查询的优化
EN

Database Administration用户
提问于 2014-12-10 20:09:02
回答 1查看 394关注 0票数 -1

我有一个用例,在这个用例中,我希望能够用另一个数字查询数万条记录,以获得某个字段值的模值,例如

SELECT * FROM EVENTS WHERE MOD(OFFSET)=5

如果有的话,我应该有哪些性能考虑来确保我的查询更有效率?是否有任何特定类型的索引可以加速这种查询?

是否对不同数据库之间的此类查询进行过公开的比较分析或基准测试或某种类型的比较分析?或者,是否有一种天真的方法来确定哪种数据库的选择最适合于这种查询?

EN

回答 1

Database Administration用户

发布于 2014-12-10 20:34:41

在Postgres中,可以使用表达式的索引:

代码语言:javascript
复制
CREATE INDEX foo_idx ON events (mod(offset, 5));

当然,只适用于这个数字。5将是一个糟糕的例子,因为大约20 %的行将限定每个可能的值,并且索引开始对5%的选定行或更少的行进行补偿。否则,顺序扫描会更快。

旁白:offset是保留字。不要使用它作为标识符。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/84841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档