0

我有以下Post模型:

 create_table "posts", :force => true do |t|
    t.string   "title"
    t.string   "content"
    t.integer  "user_id"
    t.datetime "created_at",                               :null => false
    t.datetime "updated_at",                               :null => false
    t.integer  "comments_count",        :default => 0,     :null => false
    t.string   "image_file_name"
    t.string   "image_content_type"
    t.integer  "image_file_size"
    t.datetime "image_updated_at"
    t.boolean  "published",             :default => false
    t.datetime "published_at"
    t.boolean  "draft",                 :default => false
    t.string   "document_file_name"
    t.string   "document_content_type"
    t.integer  "document_file_size"
    t.datetime "document_updated_at"
  end

  add_index "posts", ["user_id", "created_at"], :name => "index_posts_on_user_id_and_created_at"

到目前为止,我只有 2 个索引。

我仍然不太确定要索引哪些列来提高性能,所以我想听听一些建议。

(抱歉,我是索引新手,所以我想知道这是否:["user_id", "created_at"]在这两个索引之间创建关系?(或者索引之间没有关系?)或者看起来像这样,因为它们是在同一个 Rails 迁移中创建的? ")

4

1 回答 1

1

当您知道您将经常对该列进行 SQL 查找时,您应该担心索引列。如果没有看到应用程序代码的其余部分,很难确定应该索引哪些列,但我想说您选择了两个好的列。

下面是一篇很好的文章,它帮助我理解了索引,里面有一些旧的 Rails 语法,但相关的是它关于何时索引列的要点。

http://tomafro.net/2009/08/using-indexes-in-rails-choosing-additional-indexes

于 2012-10-21T07:19:22.440 回答