Rails first_or_initialize:我们需要对db进行索引吗?

时间:2015-10-21 06:26:47

标签: ruby-on-rails indexing

如果我们使用first_or_initialize / first_or_create在rails中构建一个对象(具有所有属性),我们是否需要索引db中的所有属性以提高性能?

1 个答案:

答案 0 :(得分:0)

您不需要或不想要所有属性的索引 - 事实上,太多的索引会降低您的应用程序速度,因为数据库在插入/更新时必须重做所有索引。

相反,您需要在查询中常用的id等关键属性上使用索引。

如果你想使用find或create并确保查询是高效的,你可以这样做:

@user = User.create_with(user_params)
            .first_or_create(user_params[:email])

在此示例中,您需要users.email列上的索引。

正如@Andrew Piliser所指出的,如果你传递一个id,它只会使用id列来查找记录是否存在。