【问题标题】:Should I use JSONField or FileField to store JSON datas?我应该使用 JSONField 还是 File Field 来存储 JSON 数据?
【发布时间】:2017-06-25 13:20:52
【问题描述】:

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

我有两个选择:

  1. 第一个是使用JSONField,这可能会在性能和处理数据方面为我提供简单的优势,因为我不必每次都将它们从文件中取出.

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

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

【问题讨论】:

    标签: json django storage


    【解决方案1】:

    Json 字段显然会因为它的索引而具有良好的性能。它的一个非常好的功能是本机数据访问功能,这意味着您不必解析/加载 json 然后查询,您可以直接从模型字段查询。现在,由于您拥有大量 json 数据,因此文件似乎是比模型字段更好的选择,但文件仅具有存储优势。 引用来自谷歌搜索的一些随机文章:

    Postgres json 字段比文件系统上的 json 文件多占用几乎 11% 的数据,因此 json 字段中 268mb 文件的测试为 233 mb(格式化的 json 文件)

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

    所以除非你的数据库空间不足你应该选择jsonfield。

    【讨论】:

      猜你喜欢
      • 2011-10-26
      • 2010-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-25
      相关资源
      最近更新 更多