【问题标题】:Rails migration index for joined tables连接表的 Rails 迁移索引
【发布时间】:2011-09-08 12:23:33
【问题描述】:

我使用的是 rails 3,我的生产数据库是 Heroku 上的 postgres。如何为此查询创建适当的索引?我不知道如何为正在发生的内部连接创建一个。

SELECT "plans".* FROM "plans" 
INNER JOIN "schedules" 
ON "plans".schedule_id = "schedules".id 
WHERE (("schedules".user_id = 4))

【问题讨论】:

    标签: sql ruby-on-rails postgresql


    【解决方案1】:

    您应该可以在 schedules.user_id 上添加索引:

    add_index :schedules, :user_id
    

    ...以及另一个按时间表列出的计划索引:

    add_index :plans, :schedule_id
    

    此外,如果您尝试加载所有带有相关计划的时间表,您可能应该使用左连接:

    select plans.*
      from schedules
      left join plans on plans.schedule_id = schedule.id
      where schedules.user_id = 4
    

    我认为左连接对于您在这里想要的内容是正确的。

    【讨论】:

    • 有趣,我希望有一种方法可以做一个多列索引之类的。谢谢你。内部连接是我想要的,因为计划必须属于时间表。
    猜你喜欢
    • 1970-01-01
    • 2011-05-21
    • 2015-03-01
    • 2013-09-13
    • 2021-09-06
    • 2016-12-02
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    相关资源
    最近更新 更多