我有一个度量表,我希望它非常大。它具有多态关联,因此它可以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。
这是你会做的/推荐的吗?
发布于 2010-10-21 12:25:17
最终,在添加索引之前和之后,这都值得在现实的数据集上进行基准测试-在大小和数据方面都是真实的。
但是,您并不是在一个只有几个值的字段上创建索引。索引基于这两个字段的组合,可能有许多不同的值组合。组合字段上的索引是一个聪明的想法。
发布于 2014-04-02 16:15:52
在多个字段上创建索引时,最佳实践是将最具选择性的字段放在第一位。由于您只有4-5个commentable_type值,您最好执行以下操作:
add_index :comments, [:commentable_id, :commentable_type]https://stackoverflow.com/questions/3984211
复制相似问题