嗨,请建议我应该使用BLOB还是TEXT。我有一个必须存储大量文本的要求,我读了很少的文章,他们都谈到了存储,但没有涉及检索和插入速度(如果您打算建议文件系统存储,但现在还不是项目要求。)其中之一是说文本比BLOB快,但文档中没有具体证据,这使我提出了这个问题,请你们帮我。一样。
谢谢
答案 0 :(得分:0)
BLOB 和 CLOB 数据可能需要很长时间才能检索。
TEXT 是用于基于文本的输入的数据类型。
更多详细信息:https://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html
答案 1 :(得分:0)
简短的回答:TEXT
和BLOB
的速度大约相同。
长答案:
TEXT
和BLOB
只是一堆字节。插入/获取此类列的主要成本是查找并解析该行。在某些情况下,字节是“未记录的”,因此需要额外的磁盘命中(除非已缓存)。TEXT
时,CHARACTER SET
可能会更改;这要花一些钱。 (不适用于BLOB
或任何%_bin
COLLATION
。)INSERTing
数据时,将检查字符的有效性。如果您的字节与为客户端指定的编码不匹配,则会导致错误。请注意,差异表明TEXT
可能比BLOB
慢。
这是另一种技术...如果您有一些中等大小的文本字段,那么拥有 client 实际上比TEXT
或 BLOB
快 COMPRESS
文本,然后存储到BLOB
列中。之所以可能更快,是因为需要删除较少的字节。并且buffer_pool缓存更有效。 (注意:我不是在谈论ROW_FORMAT=COMPRESSED
。)