我应该使用 JSONField 还是 FileField 来存储 JSON 数据?
Should I use JSONField or FileField to store JSON datas?
我想知道我应该如何存储我的 JSON 数据以获得最佳性能和可扩展性。
我有两个选择:
第一个是使用 JSONField,这可能会在性能和处理数据方面为我提供简单的优势,因为我不必获取它们每次都出一个文件。
我的第二个选择是将我的 JSON 数据作为 json 文件存储在 FileFields 中。这似乎是最好的选择,因为大量的 JSON 不会存储在数据库中(仅存储文件的位置)。在我看来,它是可扩展性的最佳选择,但可能不是用户性能的最佳选择,因为每次在模板中显示文件之前都必须读取文件。
我想知道我的想法是否合理,存储 JSON 数据的最佳方式是什么,以便它们尽快可重用,同时又不会使数据库和可伸缩性变得复杂?
Json 字段显然会因为它的索引而具有良好的性能。它的一个非常好的特性是本机数据访问特性,这意味着您不必 parse/load json 然后查询,您可以直接从模型字段查询。现在,由于您拥有大量 json 数据,因此文件似乎是比模型字段更好的选择,但文件仅具有存储优势。
引用 google 搜索中的一些随机文章:
Postgres json field takes almost 11% extra data than the json file on your file system so test of 268mb file in json field is 233 mb (formatted json file)
存储在文件中有一些缺点,包括读取文件解析 json 和查询,这是基于磁盘的操作,非常耗时。 json 字段的可伸缩性不会成为问题,尽管您的数据库大小会很大,因此移动数据对您来说可能会变得困难。
所以除非你没有足够的数据库space你应该选择json字段。
我想知道我应该如何存储我的 JSON 数据以获得最佳性能和可扩展性。
我有两个选择:
第一个是使用 JSONField,这可能会在性能和处理数据方面为我提供简单的优势,因为我不必获取它们每次都出一个文件。
我的第二个选择是将我的 JSON 数据作为 json 文件存储在 FileFields 中。这似乎是最好的选择,因为大量的 JSON 不会存储在数据库中(仅存储文件的位置)。在我看来,它是可扩展性的最佳选择,但可能不是用户性能的最佳选择,因为每次在模板中显示文件之前都必须读取文件。
我想知道我的想法是否合理,存储 JSON 数据的最佳方式是什么,以便它们尽快可重用,同时又不会使数据库和可伸缩性变得复杂?
Json 字段显然会因为它的索引而具有良好的性能。它的一个非常好的特性是本机数据访问特性,这意味着您不必 parse/load json 然后查询,您可以直接从模型字段查询。现在,由于您拥有大量 json 数据,因此文件似乎是比模型字段更好的选择,但文件仅具有存储优势。 引用 google 搜索中的一些随机文章:
Postgres json field takes almost 11% extra data than the json file on your file system so test of 268mb file in json field is 233 mb (formatted json file)
存储在文件中有一些缺点,包括读取文件解析 json 和查询,这是基于磁盘的操作,非常耗时。 json 字段的可伸缩性不会成为问题,尽管您的数据库大小会很大,因此移动数据对您来说可能会变得困难。
所以除非你没有足够的数据库space你应该选择json字段。