我正在为我的部落网站制作一个小论坛。我想知道我是否应该将文本文本存储在TEXT或BLOB中?有什么不同?我已经看到phpBB这样做了。
什么是BLOB?在Google上找不到相关内容。
答案 0 :(得分:6)
blob只是一堆字节。任意数量的字节,仅此而已。
如果要将文本存储为blob,则必须担心编码(将文本转换为字节的过程)。但是如果你把东西作为文本存储,那么你使用的数据库传输将确保存储在数据库中的文本被正确编码和解码,以便有效存储和使用。
如果您打算存储文字,则应存储文字。
phpBB可以自己实现文本编码和解码,这可能是使用blob而不是文本的一个原因。它不太可能,但有时文本数据类型具有最大长度,在这个特定实例中,blob可能是解决phpBB的问题。
答案 1 :(得分:4)
重新“什么” - BLOB是二元大对象;与CLOB比较:Character Large OBject。不同的数据库称它们为不同的东西 - 例如,在SQL Server上,BLOB为image
/ varbinary(max)
,CLOB为text
/ varchar(max)
。
如果系统仅支持BLOB,则一个选项是对字符串进行编码 - 例如使用UTF8。这可能是正在发生的事情。
答案 2 :(得分:1)
BLOB用于二进制数据。我不知道为什么phpBB 3以二进制形式存储所有东西,但我自己已经注意到了。我猜他们正在压缩/编码放入数据库的任何内容。您可以尝试查看phpBB源代码,看看是否有任何解释它的评论。