MySQL TEXT vs BLOB vs CLOB

Jak*_*son 67 mysql

从性能角度和可用性角度来看,这些不同数据类型的区别,优缺点是什么?

Bas*_*eer 73

TEXT是基于文本的输入的数据类型.另一方面,由于容量限制较大(例如4GB),因此BLOB和CLOB更适合数据存储(图像等).

至于BLOB和CLOB之间的区别,我相信CLOB具有与之关联的字符编码,这意味着它可以很好地适用于非常大量的文本.

相对于可以检索来自TEXT字段的数据的快速程度,BLOB和CLOB数据可能需要很长时间才能检索.所以,只使用你需要的东西.

  • 根据http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html,TEXT和BLOB可以保存相同数量的数据(64K).使用LONGTEXT和LONGBLOB最多可容纳4GB数据. (15认同)
  • 我同意Cyber​​Shadow,但你必须注意到CLOB类型只存在于Oracle中,TEXT(使用MEDIUMTEXT和LONGTEXT)是mysql中的CLOB等价物. (8认同)
  • 另一个重要的事情:如果MySQL处于严格模式,并且您试图插入比列大小长的值,那么如果列的类型为BLOB,则MySQL将引发异常。换句话说,如果该列是TEXT,则该值将被截断。 (2认同)

Jon*_*n L 16

值得一提的是,MySQL 5.0+支持CLOB/BLOB数据类型及其大小,因此您可以根据需要选择合适的数据类型.

http://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html

Data Type   Date Type   Storage Required
(CLOB)      (BLOB)

TINYTEXT    TINYBLOB    L + 1 bytes, where L < 2**8  (255)
TEXT        BLOB        L + 2 bytes, where L < 2**16 (64 K)
MEDIUMTEXT  MEDIUMBLOB  L + 3 bytes, where L < 2**24 (16 MB)
LONGTEXT    LONGBLOB    L + 4 bytes, where L < 2**32 (4 GB)

where L stands for the byte length of a string
Run Code Online (Sandbox Code Playgroud)