6

更新: 報奨金を追加しました。例を挙げてください。最良の回答を受け入れます

更新 2: 明示的な例が含まれるようになりました

同じプロジェクトから続けて、別のスレッドで bulk_create について尋ねました。 基本的に「bulk_save」する方法があるかどうか疑問に思っていました-存在しない場合は挿入するか、既に存在する場合は単に更新します。

例えば:

class Person(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    height = models.DecimalField(blank=True, null=True)
    weight = models.DecimalField(blank=True, null=True)

これらのフィールドのキーと値のペアを含む辞書のリストがあります。名前でフィルタリングしてから、身長や体重を更新したいと思います。これは、これらの選手がまだ成長し、コンディショニングされているためです。「bulk_save」する簡単な方法がない場合は、一括更新も役に立ちます。

参照: 2012 年 6 月 8 日 - django プロジェクトの「get_or_create()」パッチ

Bulk_update リファレンス

4

1 に答える 1

3

以下にリストされている update_many 関数のバリエーションを実行したところ、すでに速度が大幅に向上しているようです。

http://people.iola.dk/olau/python/bulkops.py

更新 - どうやらDSE2もオプションです。

https://bitbucket.org/weholt/dse2

明日は速度テストで更新します。

于 2012-07-15T06:16:00.497 に答える