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"]2つのインデックス間に関係を作成しているのでしょうか(またはインデックス間に関係がないのでしょうか?)、または同じRails移行で作成されたためにそのように見えますか? ")

4

1 に答える 1

1

列の SQL ルックアップを頻繁に行うことがわかっている場合は、列のインデックス作成について考慮する必要があります。アプリケーション コードの残りの部分を見ないと、どの列にインデックスを付ける必要があるかを判断するのは困難ですが、2 つの適切な列を選択したと言えます。

以下は、インデックスについて理解するのに役立つ良い投稿です。そこには古い Rails 構文が含まれていますが、関連するのは、いつ列にインデックスを付けるかについてのポイントです。

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

于 2012-10-21T07:19:22.440 に答える