0

私のユーザーテーブルには約100万件のレコードがあります。

私のRegionテーブルにはおそらく200レコードがあります。

私がすべきですadd_index :users, :region_idか?

また、リージョンにuser_idがある逆の場合は、リージョンテーブルでuser_idにインデックスを付ける必要がありますか?

4

2 に答える 2

0

「時期尚早の最適化はすべての悪の根源です」。アプリケーションのプロファイリングでインデックスが必要であることが示された場合にのみ、インデックスを追加してください。

于 2013-03-16T14:08:27.453 に答える
0

はい、追加する必要があります。あなたが考えるなら、あなたはそれらのフィールドの条件を得たたくさんのクエリを持っているでしょう。あなたの場合、1つの地域に住む人々のようなクエリがたくさんあると思うので、usersテーブルに(id(user_id)フィールドとregion_idフィールドを1つのインデックスにまとめて)のインデックスを作成します。

add_index :users, [:id, :user_id]
于 2013-03-16T07:07:06.157 に答える