我应该使用JSONField还是FileField来存储JSON数据?

时间:2017-06-25 13:20:53

标签: json django storage

我想知道如何存储我的JSON数据以获得最佳性能和可伸缩性。

我有两个选择:

  1. 第一个是使用JSONField,因为我不需要将它们从文件中删除,这可能会让我在简单性方面具有优势。每一次。

  2. 我的第二个选择是将我的JSON数据存储在FileFields中作为json文件。这似乎是最好的选择,因为大量的JSON不会存储在DataBase中(只有文件的位置)。在我看来,这是可扩展性的最佳选择,但可能不适合用户表现,因为每次在模板中显示文件之前都必须读取文件。

  3. 我想知道我是否合理地思考,存储JSON数据之间的最佳方法是什么,以便尽可能快地重用它们,而不会使数据库和数据库变得复杂。可扩展性?

1 个答案:

答案 0 :(得分:1)

由于它的索引,Json字段显然会有很好的表现。它的一个非常好的功能是本机数据访问功能,这意味着您不必解析/加载json然后查询,您可以直接从模型字段查询。既然你有一个巨大的json数据,那么文件似乎比模型字段更好,但文件只有存储的优势。 引自谷歌搜索的一些随机文章:

  

Postgres json字段比文件系统上的json文件多花费11%的额外数据,因此在json字段中对268mb文件的测试是233 MB(格式化的json文件)

存储在文件中有一些缺点,包括读取解析json和查询的文件,这是耗时的,因为它是基于磁盘的操作。虽然您的数据库大小很高,但可扩展性不会成为json字段的问题,因此移动数据可能会对您造成困难。

因此,除非您缺少数据库空间,否则应选择jsonfield。

相关问题