gpt4 book ai didi

mysql - django 模型中的大型 json 数据会减慢任何查询速度

转载 作者:行者123 更新时间:2023-12-04 07:21:34 25 4
gpt4 key购买 nike

我有一个看起来像这样的 Django 模型:

class SomeModel(Model):
some_field = CharField(max_length=10)
large_data = JsonField(blank=True, null=True)
“large_data”字段可以变得非常大,比如 150mb。我知道这是非常糟糕的做法,大部分数据可以解耦到其他 sql 数据库表中,但这是遗留应用程序,返工的影响将是巨大的。
事实证明,对该表的任何查询都非常慢,有时我只想修改“some_field”值,但即使我像下面的代码一样单独保存该字段,更新查询也需要很长时间
obj.some_field = "ice cream"
obj.save(update_fields=["some_field"])
我确信 large_data 是有罪的,因为如果我将它的值设置为“无”,那么保存操作会立即提交。
是否有优化技巧可以应用于我的示例而无需重新处理 json 字段?
提前致谢

最佳答案

获取对象可能需要太多时间。您可以与 .only(…) [Django-doc] 合作仅检索主键和 some_field :

obj = SomeModel.objects.only('pk', 'some_field').get(pk=some_pk)
obj.some_field = "ice cream"
obj.save()
您也可以 .update(…) [Django-doc]在查询集中,在这种情况下,对象永远不会加载到内存中,因此:
SomeModel.objects.filter(pk=some_pk).update(some_field='ice cream')

关于mysql - django 模型中的大型 json 数据会减慢任何查询速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68459854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com