83

私はDjangoのコーディングスタイルについての本を読んでいて、彼らが話していることの1つはですdb_index=True。Djangoを使い始めて以来、この関数が何をするのかよくわからないため、この関数を使用したことはありません。

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

4

2 に答える 2

164

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

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

2次列で多くのルックアップを行う場合は、その列にインデックスを追加して処理を高速化することを検討してください。

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

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

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

于 2013-02-09T08:52:03.090 に答える