-1

私は約24ミルのモデルをフィルタリングする必要があります。インスタンス(レコード)。 URL kwargから取得した名前に基づいてフィルタリングする必要があります。次のようなものがあります。 Model.objects.filter(field__icontains=self.kwargs['kwarg']).values() 遅いデータベース操作Djangoフィルター

これは、ページが実際に遅くてCPUから多くの処理が行われるため、これは絶対に効率的ではありません。どうすればこの問題を解決できますか?

お返事ありがとうございます!

+0

Postgresを使用している場合は、https://docs.djangoproject.com/en/2.0/ref/contrib/postgres/search/ – dkarchmer

+0

をご覧ください。または、検索エンジンを使用してください。 – dkarchmer

+0

ポストグル検索でも速度が遅くなります。 私はhaystackで弾力的な検索エンジンを見てきました。しかし、私はこの状況でどのように使用するのか分かりません。 – ShadowXsc

答えて

0

フィールドにインデックスを作成します。どの程度有効になるのかは、データベースエンジンによって多少異なりますが、役立つはずです。モデル定義fielddb_index=Trueを追加します。 PostgreSQL full text indexesもご覧ください。

+0

私はすでにこれを行ってパフォーマンスを改善しましたが、それでもまだ非常に遅いです。 – ShadowXsc