我的django应用程序处理大型文本文件,大约有50,000,000个字符。由于各种原因,将它们存储为模型字段是可取的。
几个问题:
非常感谢任何指导。
答案 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表中时可用
感谢您的投入。这是一个很大的帮助。