3

以下のクエリを使用して、データベースから 10 個のアイテムを取得します

    itemobjects = Items.objects.all()[:10]

これを行うより良い方法はありますか?データベース内の項目数が増えると、上記のクエリは非常に遅くなり、約 1 ~ 2 秒かかるためです。

4

1 に答える 1

4

大きなテーブルであっても、これにはまったく時間がかかりません。Metaモデルのクラスにデフォルトの順序を定義しましたか? おそらく、デフォルトでインデックスのないフィールドを注文するため、速度が低下している可能性があります。

とにかく、最新のエントリを取得するには、主キー (インデックスが作成されていることが保証されています) で並べ替えます。

itemobjects = Items.objects.all().order_by('-pk')[:10]

/edit: ヒント: モデル クラスに単数形の名前を付けるのが規則ItemですItems

于 2012-05-08T09:55:36.643 に答える