web-dev-qa-db-ja.com

インデックスの追加(db_index = True)

Djangoでコーディングスタイルに関する本を読んでいます。彼らが議論しているのはdb_index=True。 Djangoの使用を開始して以来、この機能は実際には使用したことがありません。

私の質問は、インデックスの追加をいつ検討するかです。

52
catherine

これは実際にはDjango固有ではありません。データベースに関連するものです。その列の検索を高速化する場合は、列にインデックスを追加します。

通常、主キーのみがデータベースによってインデックス付けされます。これは、主キーを使用したルックアップが最適化されることを意味します。

セカンダリ列で多くのルックアップを行う場合、速度を上げるためにその列にインデックスを追加することを検討してください。

ほとんどのスケールの問題と同様に、これらは統計的に多数の行がある場合にのみ適用されます(10,000は大きくありません)。

さらに、挿入を行うたびに、インデックスを更新する必要があります。そのため、インデックスを追加する列に注意してください。

いつものように、測定できるもののみを最適化できます。したがって、EXPLAINステートメントとデータベースログ(特に低速クエリログ)を使用して、インデックスが役立つ場所を見つけてください。

111
Burhan Khalid