首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该联合索引一个ActiveRecord多态关联吗?

我应该联合索引一个ActiveRecord多态关联吗?
EN

Stack Overflow用户
提问于 2010-10-21 12:09:15
回答 2查看 1.7K关注 0票数 10

我有一个度量表,我希望它非常大。它具有多态关联,因此它可以belongs_to其他想要记录某些指标的模型。我通常会像这样索引关联列,以加快关联加载速度。I've heard people talking about joint-indexing this association。这看起来像这样:

add_index :comments, [:commentable_type, :commentable_id]

But I've also heard counsel against creating indexes of low-cardinality,因为索引的收益并不能抵消维护它的开销。由于我的多态关联的_type部分在数百万行中可能只有4-5个值,所以我倾向于只对多态关联的_id部分进行索引。我可能会使用_id列和其他一些未提及的integer和datetime列创建一些额外的联合索引,但我也不会在这些索引中包含_type。

这是你会做的/推荐的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-21 12:25:17

最终,在添加索引之前和之后,这都值得在现实的数据集上进行基准测试-在大小和数据方面都是真实的。

但是,您并不是在一个只有几个值的字段上创建索引。索引基于这两个字段的组合,可能有许多不同的值组合。组合字段上的索引是一个聪明的想法。

票数 5
EN

Stack Overflow用户

发布于 2014-04-02 16:15:52

在多个字段上创建索引时,最佳实践是将最具选择性的字段放在第一位。由于您只有4-5个commentable_type值,您最好执行以下操作:

代码语言:javascript
复制
add_index :comments, [:commentable_id, :commentable_type]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3984211

复制
相关文章

相似问题

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