相关疑难解决方法(0)

连接表的最佳SQL索引

考虑到性能改进,我想知道是否以及哪些索引对连接表有用(特别是在Rails 3 has_and_belongs_to_many上下文中使用).

模型和表设置

我的模型是FooBar每个rails惯例,我有一个名为的连接表bars_foos.没有主键或时间戳使老油田在该表bar_id:integerfoo_id:integer.我有兴趣知道以下哪个索引是最好的,没有重复:

  1. 复合指数: add_index :bars_foos, [:bar_id, :foo_id]
    • 两个指标
    • 一个. add_index :bars_foos, :bar_id
    • B. add_index :bars_foos, :foo_id
  2. 1和2-B的组合

基本上,我不确定复合索引是否足够,假设它有助于开始.我相信复合索引可以用作第一项的单个索引,这就是为什么我确定使用所有三行肯定会导致不必要的重复.

可能的用法

最常见的用法将给出一个模型实例Foo,我将要求bars使用RoR语法关联它foo.bars,反之亦然,bar.foos用于模型的实例Bar.

这些将产生的类型的查询SELECT * FROM bars_foos WHERE foo_id = ?SELECT * FROM bars_foos WHERE bar_id = ?分别然后使用这些所得ID来SELECT * FROM bars WHERE ID in (?)SELECT * FROM foos WHERE ID in …

indexing database-design ruby-on-rails rails-migrations

38
推荐指数
2
解决办法
8945
查看次数