Django textarea获得50,000,000个字符数据

时间:2014-03-27 19:09:11

标签: django postgresql django-models

我的django应用程序处理大型文本文件,大约有50,000,000个字符。由于各种原因,将它们存储为模型字段是可取的。

  • 我们正在使用sqlite for dev和postgres进行制作。
  • 用户无需通过任何UI输入数据。
  • 该字段不需要在管理员或用户的其他位置可见。

几个问题:

  • 将这么多文本存储在textarea字段中是否切实可行?
  • 这可能会产生什么(如果有的话)性能问题?
  • 使用二进制字段会提高性能吗?

非常感谢任何指导。

3 个答案:

答案 0 :(得分:2)

另一个考虑因素是,当您查询该模型时,请确保在查询集上使用defer,因此每次要从中检索对象时,都不会将50 MB数据传输到管道中D b。

我强烈建议将这些文件存储在磁盘或S3或FileField中的等效文件中。您无法真正有效地查询这些文件的内容。

答案 1 :(得分:1)

这与您使用的数据库更相关。您使用SQLite,因此请查看SQLite的限制:

  

定义字符串中的最大字节数或SQLite中的BLOB   由预处理器宏SQLITE_MAX_LENGTH。默认值   宏观是10亿(十亿或1,000,000,000)。

http://www.sqlite.org/limits.html

除此之外,在Django中使用TextField可能更好。

二进制字段不会提高性能。二进制字段用于二进制数据,您正在存储文本。

答案 2 :(得分:0)

经过一些实验,我们决定使用Django文件字段,将文件内容存储在Postgresql中。性能是主要决策驱动因素。使用文件字段,我们能够非常快速地查询以获取底层字段文件,而该字段文件又可以在操作系统级别直接访问,其高性能比数据存储在Postgresql表中时可用

感谢您的投入。这是一个很大的帮助。