6

我正在为我的部落网站制作一个小论坛。我想知道是否应该将线程文本存储在 TEXT 或 BLOB 中?有什么不同?我已经看到 phpBB 做到了。

到底什么是 BLOB?在谷歌上找不到太多关于它的信息。

4

3 回答 3

6

一个 blob 只是一堆字节。任意数量的字节,仅此而已。

如果要将文本存储为 blob,则必须担心编码(将文本转换为字节的过程)。但是,如果您将内容存储为文本,则无论您使用何种数据库传输方式,都将确保存储在数据库中的文本被正确编码和解码,以实现高效存储和易于使用。

如果您打算存储文本,则应存储文本。

phpBB 可以自己实现文本编码和解码,这可能是使用 blob 代替文本的原因之一。这不太可能,但有时文本数据类型具有最大长度,在这种特定情况下,blob 可能是 phpBB 的一种解决方法。

于 2009-02-21T11:48:11.920 回答
4

重新“什么” - BLOB是二进制大对象;与CLOB比较:字符大对象。但是,不同的数据库称它们为不同的东西 - 例如,在 SQL Server 上,您有image/varbinary(max)代表 BLOB,而text/varchar(max)代表 CLOB。

如果系统仅支持 BLOB,则一种选择是对字符串进行编码 - 例如使用 UTF8。这可能就是正在发生的事情。

于 2009-02-21T11:48:33.107 回答
1

BLOB 用于二进制数据。我不知道 phpBB 3 以二进制形式存储所有内容的原因,但我自己已经注意到了。我的猜测是他们正在压缩/编码他们放入数据库的任何内容。您可以尝试查看 phpBB 源代码,看看是否有任何注释解释它。

于 2009-02-21T11:45:30.117 回答