Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails中,按创建的顺序是否需要索引?_Ruby On Rails_Ruby On Rails 4_Activerecord - Fatal编程技术网

Ruby on rails 在Rails中,按创建的顺序是否需要索引?

Ruby on rails 在Rails中,按创建的顺序是否需要索引?,ruby-on-rails,ruby-on-rails-4,activerecord,Ruby On Rails,Ruby On Rails 4,Activerecord,或者Rails是否会自动添加索引或按id排序 Rails 4.Rails处理在主键列上添加索引的操作。 从版本4.2开始,rails已经(注意) 除此之外,Rails将把所有其他字段的索引完全留给您。因此,它不会在您的created\u at字段中创建一个 你需要一个吗?只有当您遇到性能问题时(或者看到您很快就会遇到问题)。在遇到问题之前,您可以处理的不仅仅是几百行 一旦您确实觉得需要一个索引,那么您应该使用Rails迁移来添加它—您不应该自己直接将其添加到数据库中。是的,您需要自己为在创建的添

或者Rails是否会自动添加索引或按id排序


Rails 4.

Rails处理在主键列上添加索引的操作。
从版本4.2开始,rails已经(注意)

除此之外,Rails将把所有其他字段的索引完全留给您。因此,它不会在您的
created\u at
字段中创建一个

你需要一个吗?只有当您遇到性能问题时(或者看到您很快就会遇到问题)。在遇到问题之前,您可以处理的不仅仅是几百行


一旦您确实觉得需要一个索引,那么您应该使用Rails迁移来添加它—您不应该自己直接将其添加到数据库中。

是的,您需要自己为在创建的
添加索引

您可以查看您的迁移文件,您将看到默认情况下未定义在处创建的索引

如果只有几百行,没有索引也可以

编辑:

假设您有一个名为
Product
的模型,要在
上添加索引,只需添加一个新的迁移即可
bundle exec rails d migration AddCreatedAtIndexToProducts
然后打开新创建的迁移并添加索引定义:

class AddCreatedAtIndexToProducts < ActiveRecord::Migration[6.0]
  def change
    add_index :products, :created_at
  end
end
class AddCreatedAtIndexToProducts
是的,您需要自己添加。如果您的表中有许多行,则选择“是”。如果只有几百行,没有索引也可以。您可以查看您的迁移文件,您会发现默认情况下,在创建时没有定义索引。@cristian-好的,谢谢。您可能需要为此创建一个答案。