MySQL中的BLOB和TEXT数据类型有什么区别?

nen*_*cor 112 mysql database text blob

什么是blob什么text?有什么区别?

我什么时候需要使用blob,何时需要text作为数据类型?

因为blobtext,有mediumblob== mediumtext,smallblob== small text.他们甚至有相同的含义吗?

看看这个MEDIUMBLOB,MEDIUMTEXT L+ 3个字节,在哪里L < 224.

什么是L

Dar*_*cey 93

TEXT和CHAR将转换为与时间关联的字符集.BLOB和BINARY只存储字节.

BLOB用于存储二进制数据,而Text用于存储大字符串.

BLOB值被视为二进制字符串(字节字符串).它们没有字符集,排序和比较基于列值中字节的数值.

TEXT值被视为非二进制字符串(字符串).它们具有字符集,并根据字符集的排序规则对值进行排序和比较.

http://dev.mysql.com/doc/refman/5.0/en/blob.html

  • TEXT将被替换为Varchar(MAX),但现在根据您的mysql版本使用TEXT用于大型文本帖子,例如博客正文帖子等.BLOB不应该用于存储很长的URL地址或大量的文本.它通常用于存储图像或其他基于二进制的对象.就个人而言,我从不使用BLOB或TEXT,并相对于基于用户ID的文件夹在xml文件中存储大量数据. (4认同)
  • 那么,我们使用文本存储长文本,如"wordpress post"?我们使用blob存储一个很长的URL地址?那么为什么我们不使用varchar存储很长的文本而不是使用blob或文本?因为在内存计算中,varchar非常简单,例如create table website(website_name varchar(30))然后我们填充website_name"stackoverflow"所以所需的内存是13byte (3认同)
  • @nencor 是的,您可以将图像存储到数据库中。您还可以存储档案。但是您不能将文件夹存储到数据库中,因为文件夹实际上是文件系统的功能。(不过,您最终可以将完整的文件系统(例如作为 iso 文件)存储到数据库中) (3认同)

小智 10

Blob数据类型存储二进制对象(如图像),而text数据类型存储文本对象(如网页文章)


COL*_*OLD 9

TEXT和CHAR或nchar通常会转换为纯文本,因此您只能存储字符串等文本.

BLOB和BINARY意味着你可以存储二进制数据,如图像只存储字节.

  • 没有umage url是文本,但是作为文件的图像是二进制的 (2认同)

Ali*_*ili 7

根据《高性能Mysql》一书:

BLOBTEXT系列之间的唯一区别是BLOB 类型存储没有排序规则或字符集的二进制数据,但TEXT 类型具有字符集和排序规则。


Jam*_*ams 6

BLOB是用于保存可变数据量的二进制字符串.在大多数情况下,BLOB用于保存实际的图像二进制而不是路径和文件信息.文本适用于大量字符串字符.通常,博客或新闻文章将构成TEXT字段

在这种情况下,L用于说明存储要求.(长度|尺寸+3)只要小于224.

参考:http://dev.mysql.com/doc/refman/5.0/en/blob.html