在mariaDB中使用BLOB和TEXT(检索和插入速度)有什么区别

时间:2019-02-26 07:27:26

标签: mysql mariadb

嗨,请建议我应该使用BLOB还是TEXT。我有一个必须存储大量文本的要求,我读了很少的文章,他们都谈到了存储,但没有涉及检索和插入速度(如果您打算建议文件系统存储,但现在还不是项目要求。)其中之一是说文本比BLOB快,但文档中没有具体证据,这使我提出了这个问题,请你们帮我。一样。

谢谢

2 个答案:

答案 0 :(得分:0)

BLOB CLOB 数据可能需要很长时间才能检索。

TEXT 是用于基于文本的输入的数据类型。

更多详细信息:https://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html

答案 1 :(得分:0)

简短的回答:TEXTBLOB的速度大约相同。

长答案:

  • 最终TEXTBLOB只是一堆字节。插入/获取此类列的主要成本是查找并解析该行。在某些情况下,字节是“未记录的”,因此需要额外的磁盘命中(除非已缓存)。
  • 有一些CPU处理差异。但这是相对较小的。当在表和客户端之间移动TEXT时,CHARACTER SET 可能会更改;这要花一些钱。 (不适用于BLOB或任何%_bin COLLATION。)
  • 另一个CPU差异:当INSERTing数据时,将检查字符的有效性。如果您的字节与为客户端指定的编码不匹配,则会导致错误。

请注意,差异表明TEXT 可能比BLOB慢。

这是另一种技术...如果您有一些中等大小的文本字段,那么拥有 client 实际上比TEXT BLOB COMPRESS文本,然后存储到BLOB列中。之所以可能更快,是因为需要删除较少的字节。并且buffer_pool缓存更有效。 (注意:我不是在谈论ROW_FORMAT=COMPRESSED。)