2017-02-24 1 views
-1

created_atにインデックスを追加する必要がありますか?Railsでcreated_at列にインデックスを設定する場合

User.posts.where('created_at > ?', 3.months.ago) 

一般的にはポスト・テーブルは(何百何千ものレコードの)かなり大きいですが、あなたが適用されるいくつかの一般的なルールがありますすべてのユーザーが平均で

100周りダースの記事のカップルと最大値を有しますこのようなケースでインデックスを設定するには?

答えて

-1

このすべての最初には、このよう

User.posts.where('created_at > ?', 3.months.ago) 

右のクエリではありませんが、この

current_user.posts.where('created_at > ?', 3.months.ago) 

も、インデックスを追加することは必須ではありませんが、あなたが追加する必要があり、より良いパフォーマンスを得るためのようなものでなければならないindex: trueユーザ参照によるポストテーブルの移行へこの

t.references :user, index: true, foreign_key: true 
+0

これは私が恐れる質問に対する回答ではありません。 – Iceman

-1

よう ものはありません、インデックスを使用しないでください。キャッシュを使用する。あなたのコードでこの呼び出しをどこで行っているのかわからないので、より具体的な答えを出すことはできません。しかし、このガイドは正しい方向にあなたを始めさせるでしょう。私はこのためのRedisを使う

http://edgeguides.rubyonrails.org/caching_with_rails.html#activesupport-cache-store

。この宝石https://github.com/redis-store/redis-railsは私のためにうまくいきました。

+0

問題は、インデックスを作成する方法ではなく、インデックスを作成するときです。 – Iceman

+0

申し訳ありませんが、私はあなたの質問を理解していませんでした。私は私の答えを更新します。 – nzajt

+0

それは私の質問ではありませんでしたが、とにかく、より良いパフォーマンスを得るための絶対的な基本的な方法であるインデックスを使用しない理由をどうして提唱していますか? – Iceman