Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL文本vs BLOB vs CLOB_Mysql - Fatal编程技术网

MySQL文本vs BLOB vs CLOB

MySQL文本vs BLOB vs CLOB,mysql,Mysql,从性能和可用性的角度来看,这些不同数据类型的区别、优点和缺点是什么?文本是基于文本输入的数据类型。另一方面,BLOB和CLOB更适合于数据存储(图像等),因为它们的容量限制更大(例如4GB) 至于BLOB和CLOB之间的区别,我相信CLOB具有与之相关的字符编码,这意味着它可以很好地适用于大量文本 相对于从文本字段中检索数据的速度,BLOB和CLOB数据的检索可能需要很长时间。因此,只使用您需要的数据。值得一提的是,MySQL 5.0+支持CLOB/BLOB数据类型及其大小,因此您可以根据需要选

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

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

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


相对于从文本字段中检索数据的速度,BLOB和CLOB数据的检索可能需要很长时间。因此,只使用您需要的数据。

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

需要数据类型日期类型存储
(CLOB)(BLOB)
TINYTEXT TINYBLOB L+1字节,其中L<2**8(255)
文本块L+2字节,其中L<2**16(64K)
MEDIUMTEXT MEDIUMBLOB L+3字节,其中L<2**24(16 MB)
LONGTEXT LONGBLOB L+4字节,其中L<2**32(4 GB)
其中L表示字符串的字节长度

MySQL是否有CLOB类型?事实上TEXT=CLOB。CLOB只是Oracle(或其他数据库)的一种类型,因为mySQL中使用文本。根据,文本和BLOB可以保存相同数量的数据(64K)。使用LONGTEXT和LONGBLOB最多可容纳4GB的数据。我同意CyberShadow,但您必须注意,CLOB类型仅存在于Oracle、TEXT(使用MEDIUMTEXT和LONGTEXT)在mysql中是CLOB等价物。另一件重要的事情是:如果mysql处于严格模式,并且您尝试插入的值长于列大小,那么如果列的类型为BLOB,mysql将抛出异常。在另一方面,如果列是文本,那么值将被截断。JDBC返回类型为Types.VARBINARY,那么如何通过JDBC API将文本与其他VARBINARY区别开来(例如,当我试图编写通用持久性工具时,我不知道它的DDL脚本)?为什么MySQL驱动程序不将其类型返回为Types.CLOB?很好的参考,谢谢您的示例。顺便说一句,MySql 5.7手册中没有提到CLOB。
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