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

Mysql 在mariaDB中使用BLOB和文本(检索和插入速度)有什么区别,mysql,mariadb,Mysql,Mariadb,您好,请建议我应该使用BLOB还是文本。我有一个要求,我必须存储大量文本,我读了几篇文章,他们都谈到了存储,但没有谈到检索和插入速度(如果您打算建议文件系统存储,但这不是现在的项目要求)他们中的一个告诉我文本比BLOB快,但文档中没有具体的证据,这让我问了这个问题,如果你们能帮我的话 感谢BLOB和CLOB检索数据可能需要很长时间 文本是基于文本输入的数据类型 更多详细信息:BLOB和CLOB检索数据可能需要很长时间 文本是基于文本输入的数据类型 更多详细信息:简短回答:TEXT和BLOB的速度

您好,请建议我应该使用BLOB还是文本。我有一个要求,我必须存储大量文本,我读了几篇文章,他们都谈到了存储,但没有谈到检索和插入速度(如果您打算建议文件系统存储,但这不是现在的项目要求)他们中的一个告诉我文本比BLOB快,但文档中没有具体的证据,这让我问了这个问题,如果你们能帮我的话


感谢

BLOBCLOB检索数据可能需要很长时间

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


更多详细信息:

BLOBCLOB检索数据可能需要很长时间

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


更多详细信息:

简短回答:
TEXT
BLOB
的速度大致相同

长答覆:

  • 最终,
    TEXT
    BLOB
    只是一堆字节。插入/获取此类列的主要成本是查找行并对其进行解析。在某些情况下,字节是“非记录的”,因此需要额外的磁盘命中(除非缓存)
  • 存在一些CPU处理差异。但这是相对次要的。在表和客户端之间移动
    文本
    时,可能会更改
    字符集
    ;这要花点钱。(不适用于
    BLOB
    或任何
    %\u-bin
    排序规则
  • 另一个CPU差异:当插入数据时,检查字符的有效性。如果您的字节与为客户端指定的编码不匹配,则会导致错误
请注意,差异表明
文本
可能略慢于
BLOB


这是另一种技术。。。如果您有一些中等大小的文本字段,那么让客户端
压缩
文本,然后存储到
BLOB
列实际上比
文本或
BLOB
要快。这可能会更快的原因是需要处理的字节更少。缓冲池缓存更有效。(注意:我不是说
ROW\u FORMAT=COMPRESSED

简短回答:
TEXT
BLOB
的速度大致相同

长答覆:

  • 最终,
    TEXT
    BLOB
    只是一堆字节。插入/获取此类列的主要成本是查找行并对其进行解析。在某些情况下,字节是“非记录的”,因此需要额外的磁盘命中(除非缓存)
  • 存在一些CPU处理差异。但这是相对次要的。在表和客户端之间移动
    文本
    时,可能会更改
    字符集
    ;这要花点钱。(不适用于
    BLOB
    或任何
    %\u-bin
    排序规则
  • 另一个CPU差异:当插入数据时,检查字符的有效性。如果您的字节与为客户端指定的编码不匹配,则会导致错误
请注意,差异表明
文本
可能略慢于
BLOB


这是另一种技术。。。如果您有一些中等大小的文本字段,那么让客户端
压缩
文本,然后存储到
BLOB
列实际上比
文本或
BLOB
要快。这可能会更快的原因是需要处理的字节更少。缓冲池缓存更有效。(注意:我不是说
行格式=压缩的

thilo yes clob在等待列表中是blob抱歉,我正在编辑该内容也是如此,但没有文件证明其速度比clob快/blob也没有任何理由使其符合逻辑只是一个声明thilo yes clob在等待列表中是blob抱歉,我正在编辑该内容也是如此,我已经阅读了相同但没有关于比clob/blob更快的文档证明也没有任何理由使其逻辑化只是一个语句为什么文本比相同大小的blob检索更快?因为文本存储为纯文本(字符串)具有字符集和排序规则,其中as BLOB数据类型存储非结构化且无排序规则或字符集的二进制对象。因此,文本将执行得更快。@MebinJoe,我相当肯定这不是完全正确的。文本和BLOB具有完全相同的存储特性。区别在于您所描述的排序规则。如果在与当前连接不同的字符集上检索文本,则在转换文本时会产生额外的CPU开销。但是,大部分时间都是在存储引擎中检索。两者的性能应该是可比较的,但我希望文本更快。为什么文本检索速度会比相同大小的BLOB更快?因为文本存储为纯文本(字符串),具有字符集和排序规则,而as BLOB数据类型存储的是非结构化的二进制对象,没有排序规则或字符集。因此,文本将执行得更快。@MebinJoe,我相当肯定这不是完全正确的。文本和BLOB具有完全相同的存储特性。区别在于您所描述的排序规则。如果在与当前连接不同的字符集上检索文本,则在转换文本时会产生额外的CPU开销。但是,大部分时间都是在存储引擎中检索。两者的性能应该是可比较的,但我希望文本速度更快。