私は Rails プロジェクトを構築しており、一連のテーブルを含むデータベースを持っています..それぞれが 500k から 1M の行を保持しており、常に新しい行を作成しています。
プロジェクトの性質上、各作成の前に、テーブルを検索して (1 つのフィールドに対して) 重複を探す必要があるため、同じ行を 2 回作成することはありません。残念ながら、私のテーブルが大きくなるにつれて、これにはますます時間がかかっています。
検索対象の特定の文字列フィールドにインデックスを追加することで検索を最適化できると考えていましたが、インデックスを追加すると作成時間が長くなると聞きました。
したがって、私の質問は次のとおりです。インデックスが作成されたフィールドを含む行を見つけて作成することとのトレードオフは何ですか? フィールドにインデックスを追加すると、Model.find_by_name を使用してプログラムが高速になることはわかっていますが、行の作成がどれだけ遅くなるでしょうか?