ruby-on-rails - 我应该联合索引 ActiveRecord 多态关联吗?

标签 ruby-on-rails activerecord migration polymorphic-associations indexing

我有一个公制表,我希望它非常大。它具有多态关联,因此它可以属于其他想要记录某些指标的模型。我通常索引这样的关联列以加快关联加载。 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 列和其他一些未提及的整数和日期时间列创建一些额外的联合索引,但我也不会在这些索引中包含 _type。

这是你会做/推荐的吗?

最佳答案

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

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

关于ruby-on-rails - 我应该联合索引 ActiveRecord 多态关联吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3984211/

相关文章:

ruby-on-rails - 查询,无法选择列数

database - Oracle Schema 疑问?

ruby-on-rails - 如何让 Rails 迁移在 Heroku 上自动运行

ruby-on-rails - 优雅的 PostgreSQL Group by for Ruby on Rails/ActiveRecord

php - 从 php 转换为 ruby

jquery - 在 Rails 3 中,我使用的是 jQuery Tokenize 插件,但表单提交的是值,而不是 id

ruby-on-rails - 保存主对象时,ActiveRecord 是否保存了belongs_to 关联?

ruby-on-rails - 如何确保不会通过 activerecords 将重复行添加到我的数据库表中?

configuration - 通过导出/导入移动Docker容器:丢失配置,如启动命令

ruby-on-rails - 当 Devise 用户超出我的默认范围时,如何允许他们登录?