gpt4 book ai didi

ruby-on-rails - Rails 数据库索引 : Is this an anti-pattern?

转载 作者:行者123 更新时间:2023-11-29 13:59:26 24 4
gpt4 key购买 nike

如果我认为我的应用程序运行的查询保证它们,在 Rails 4 应用程序(使用 Postgresql)中设置这样的索引是否被认为是好的?只是检查一下,因为我不是索引专家,而且我不想意外导致性能问题。下面的例子应该是一个连接表。谢谢!

add_index "foo_bars", ["foo_id", "bar_id"]
add_index "foo_bars", "foo_id"
add_index "foo_bars", "bar_id"

最佳答案

您可能只需要两个索引。您通常使用两列进行查询吗?如果是这样,请执行以下操作:

add_index "foo_bars", ["foo_id", "bar_id"]
add_index "foo_bars", ["bar_id", "foo_id"]

有了这两个,无论您查询的是哪一列,您的数据库都应该找到合适的索引。它可能不会节省任何空间,但这意味着您的数据库只需要在数据更改时更新两个索引(并不是说您可能会注意到速度差异)。

但是,我敢打赌您的查询通常只包括 foo_idbar_id(不是两者),因为您可能只是遍历 has_many 大多数时候是关系。如果是这种情况,只需在各个列上定义索引即可。 PostgreSQL 足够智能,可以在您查询两列时合并索引。

add_index "foo_bars", "foo_id"
add_index "foo_bars", "bar_id"

关于ruby-on-rails - Rails 数据库索引 : Is this an anti-pattern?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24151210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com