Ruby on rails Rails充当受审核的角色-为什么它首先按ID进行索引?
使用Rails 2.3.5 在acts_as_audited中,模式定义定义了一个索引: 添加索引:audits,[:auditable\u id, :auditable_type],:name=> “可审计索引” 在我看来,指数应该是: 添加索引:审核,[:可审核类型, :auditable_id],:name=> “可审计索引” 一般来说,在多态关联中,我们有时可能只想按类型进行搜索,但很少按没有类型的ID进行搜索 或者,当您仅使用插件审核一个表时,这是允许通过可审核的_id进行搜索的一种懒惰方式吗Ruby on rails Rails充当受审核的角色-为什么它首先按ID进行索引?,ruby-on-rails,polymorphic-associations,Ruby On Rails,Polymorphic Associations,使用Rails 2.3.5 在acts_as_audited中,模式定义定义了一个索引: 添加索引:audits,[:auditable\u id, :auditable_type],:name=> “可审计索引” 在我看来,指数应该是: 添加索引:审核,[:可审核类型, :auditable_id],:name=> “可审计索引” 一般来说,在多态关联中,我们有时可能只想按类型进行搜索,但很少按没有类型的ID进行搜索 或者,当您仅使用插件审核一个表时,这是允许通过可审核的_id进行搜索的一种懒
还是有其他的理由这样做呢?我刚刚想到了答案 有些数据库不支持多字段索引,这些数据库将只索引第一个字段。如果您使用我的备用索引,那么您将获得按类名聚集的数据,数据库必须在其上进行顺序扫描以查找特定ID。这肯定比搜索ID然后检查类名要慢 我发现的另一个原因是,当索引中的第一个字段显然不够具体时,SQL优化器往往不会考虑使用索引