2017-01-15 11 views
0

私はテーブルにデータを入れるこのスクービースパイダーを持っています。最大10〜20レコードがスクラップされてテーブルに挿入されます。だから、レコードが存在するかどうかを見て、それを更新するのではなく、単にそれらを取り除いて新しいものを取り除くことがより速くなるだろうと思った。私のテーブル?また、where句の助けを借りて削除するdjangoのormコマンドは何ですか?たとえば、 "cat"という名前のすべてのレコードを削除しますか?ありがとうございましたスクラップスパイダー内のdjangoのテーブルからすべてのデータを削除するには

+0

これは、成熟前の最適化のようです。あなたが本当に気にしているなら、それをプロファイルして見てください。しかし、それはおそらく重要ではありません。私は[フィルタ()](https://docs.djangoproject.com/en/1.10/ref/models/querysets/#filter)があなたが探しているものだと思います。 – ernie

+0

ありがとう@ernie、私は新しいデータをフェッチするためにテーブルをクレンジングする "時期尚早の最適化"は何ですか?ありがとう! – CaptainVader2

+1

テーブルをダンプして書き直す方が速いのか、特定のレコードを見つけて更新するのか(特にそのような小さなテーブルの場合)は、最適化する価値のないものであるかどうかを比較してみましょう。あなたが何かを持っているなら、それを使い続けてください。あなたが実際のボトルネックだと思っていない限り、やり直して再実行する必要はありません。パフォーマンスの違いを得るよりも、コードを書き直す時間が長くなります。 – ernie

答えて

0

また、where節の助けを借りて削除するdjango ormコマンドとは何ですか?たとえば、 "cat"という名前のすべてのレコードを削除しますか?

これは非常に簡単です:私は時期尚早な最適化を避けることについての@アーニーさんのコメントは、スポットオンであることを

MyModel.objects.filter(name__contains="cat").delete() 

と思います。しかし、本当に気にしているなら、MyModel.objects.all().delete()ですべてのレコードを削除することができます。

+0

ありがとうございます! ;-) – CaptainVader2

関連する問題