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

jma*_*xyz 10 migration indexing activerecord ruby-on-rails polymorphic-associations

我有一个我希望非常大的度量表.它具有多态关联,因此它可以属于想要记录某些度量的其他模型.我通常索引像这样的关联列来加速关联加载. 我听说有人谈论联合索引这种关联.这看起来像:

add_index :comments, [:commentable_type, :commentable_id]

但我也听到了反对创建低基数指数的建议,因为索引的收益并没有抵消维持它的开销.由于我的多态关联的_type一半可能在数百万行中只有4-5个值,所以我倾向于只对多态关联的_id部分进行索引.我可能会使用_id列和一些其他未提及的整数和日期时间列创建一些额外的联合索引,但我也不会在这些索引中包含_type.

这是你会做什么/推荐?

Jai*_*yer 5

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

但是,您不是仅使用几个值在字段上创建索引.索引是两个字段的组合,可能有很多不同的值组合.组合字段的索引是一个聪明的主意.