HamoonDBA Asked: 2016-12-25 23:01:11 +0800 CST2016-12-25 23:01:11 +0800 CST 2016-12-25 23:01:11 +0800 CST 为什么维基百科使用 blob 类型而不是文本类型? 772 根据我的经验,当您想保存图像或视频等二进制数据时,Blob 类型是不错的选择,而当您想要保存大字符串时,Text 类型是不错的选择。 今天我看到了维基百科数据库。有趣的是,wiki 使用中型 blob 类型来存储页面的 wiki 文本。 所以我想知道为什么 Wiki 更喜欢使用 Blob 类型而不是 Text? 谢谢 mysql database-design 2 个回答 Voted Best Answer Rick James 2016-12-26T16:18:59+08:002016-12-26T16:18:59+08:00 存储文本的“正确”方法是使用TEXTwith CHARACTER SET ut8fmb4。但是,这需要您知道客户端中存在什么编码,以便它可以在存储时转换(由 MySQL)。 通过存储到BLOB,消除了上述问题。然而,这会导致另一个问题——如何显示文本。 另一个可能的借口BLOB是维基百科可能在 utf8mb4 被添加到 MySQL 之前就开始了。 (我们只能猜测。) David דודו Markovitz 2016-12-26T02:00:16+08:002016-12-26T02:00:16+08:00 可能是为了避免由于编码问题而在存储数据时发生意外更改。 任何编码都有其支持的字符集。当您以特定编码存储文本时,某些字符可能会被翻译以适应存储字符集。 BLOB“按原样”存储,而文本内容根据所使用的编码进行处理。
存储文本的“正确”方法是使用
TEXT
withCHARACTER SET ut8fmb4
。但是,这需要您知道客户端中存在什么编码,以便它可以在存储时转换(由 MySQL)。通过存储到
BLOB
,消除了上述问题。然而,这会导致另一个问题——如何显示文本。另一个可能的借口
BLOB
是维基百科可能在 utf8mb4 被添加到 MySQL 之前就开始了。(我们只能猜测。)
可能是为了避免由于编码问题而在存储数据时发生意外更改。
任何编码都有其支持的字符集。当您以特定编码存储文本时,某些字符可能会被翻译以适应存储字符集。
BLOB“按原样”存储,而文本内容根据所使用的编码进行处理。