在SQL数据库中存储大型文本blob的选项?

时间:2011-01-14 00:31:41

标签: sql database blobstorage

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

对于MySQL中的LONGTEXT字段,似乎数据库内存储可能限制为4GB,并且可能其他数据库具有类似的限制。此外,存储在数据库中可能会在查看此数据时排除任何类型的搜索 - 我必须加载数据的全长以呈现它的任何部分,对吧?

所以我似乎倾向于将这些数据存储在数据库之外:我对在数据库中存储大blob的疑虑是否有效,如果我要将它们存储在数据库中,那么是否存在框架/库来帮助解决这个问题?

(我在python工作,但我也对其他语言的技术感兴趣)

2 个答案:

答案 0 :(得分:2)

您的疑虑是有效的。

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

问题源于这样一个事实,即您对大型对象的操作往往与您对原子值的操作有很大不同。因此代码变得困难且不一致。

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

答案 1 :(得分:0)

我知道php / mysql / oracle / prob更多允许你使用大型数据库对象,就好像你有一个文件指针一样,可以解决内存问题。