2011-01-14 49 views
2

我有一些大量的文本(日志文件),可能非常大(高达千兆字节)。它们与我在数据库中存储的实体相关联,我试图弄清楚是否应该将它们存储在SQL数据库或外部文件中。用于在SQL数据库中存储大文本blob的选项?

对于MySQL中的LONGTEXT字段,数据库内存似乎限制为4GB,并且可能其他DB具有类似的限制。此外,在数据库中存储大概会阻止任何寻求查看这些数据时的寻求 - 我不得不加载全部数据来渲染它的任何部分,对吧?

因此,我似乎倾向于将这些数据存储在数据库外:我对数据库中存储大型数据块的担心是否有效,如果我要将它们存储在数据库之外,那么是否存在任何框架/图书馆来帮助?

(我在python工作,但我有兴趣在过其他语言技术)

回答

2

你的疑虑是有效的。

DB在几年前获得了处理大型二进制和文本字段的能力,在大家尝试之后我们放弃了。

问题源于这样一个事实,即您对大对象的操作往往与您在原子值上的操作大不相同。所以代码变得困难和不一致。

所以大多数退伍军人只是将它们存储在文件系统中,并在数据库中使用指针。

0

我知道的PHP/MySQL/ORACLE /概率更可让您与大型数据库对象,如果你有一个文件指针,这解决了内存问题。

+0

你能提供一个关于如何为mysql执行这种文件式访问的信息的链接吗? – kdt 2011-01-18 15:10:19