2012-07-24 73 views
81

blob什么是text?有什么区别?MySQL中BLOB和TEXT数据类型有什么区别?

什么时候需要使用blob以及什么时候需要text作为数据类型?

因为对于blobtext,有mediumblob == mediumtextsmallblob == small text。他们甚至有同样的意思吗?

然后看看这个MEDIUMBLOB,MEDIUMTEXT L + 3个字节,其中L < 224

什么是L

+0

我觉得这个职位回答你的问题 http://stackoverflow.com/questions/7071662/mysql-text-vs-blob-vs-clob – earlonrails 2012-07-24 05:46:30

回答

70

TEXT和CHAR将转换为/与其与时间相关联的字符集。 BLOB和BINARY只是存储字节。

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

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

TEXT值被视为非二进制字符串(字符串)。他们有一个字符集,并且根据字符集的排序规则对值进行排序和比较。

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

+3

所以,我们用文字来存储长文本,如“WordPress邮寄“?我们使用blob来存储很长的URL地址? 那么为什么我们不使用varchar来存储非常长的文本而不是使用blob或文本?因为在内存计算中,varchar真的很简单,例如 创建表网站(website_name varchar(30)) 然后我们填写website_name“stackoverflow”,所以需要的内存是13byte – nencor 2012-07-24 09:36:18

+4

TEXT将被替换为Varchar (MAX),但现在取决于你的mysql版本使用TEXT的大型文本帖子,如博客正文帖子等。BLOB不应该用于存储很长的URL地址或大量的文本。它通常用于存储图像或其他基于二进制的对象。我个人从不使用BLOB或TEXT,并将大量数据存储在与基于用户标识的文件夹相关的xml文件中。 – Darcey 2012-07-24 10:16:09

+0

我不明白基于二进制的对象。你的意思是,我们可以使用Blob数据类型将照片存储到数据库?就像文件夹? 所有我知道的二进制文件只有1或0. – nencor 2012-07-24 13:39:50

5

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

L在这种情况下用于说明存储要求。 (长度|大小+ 3),只要它是小于224

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

8

TEXT和CHAR或NCHAR其将典型地被转换为纯文本,所以你只能存储文本等字符串。

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

+0

你是什么意思通过存储二进制数据,如图像? 您的意思是图片网址? – nencor 2012-07-24 09:39:49

+1

no umage url是一个文本,但图像作为一个文件是二进制的 – 2012-07-24 15:05:40

7

斑点数据类型存储如图像二进制对象而像网页

0

的Blob文章文本数据类型存储文本对象是包含数据的可变数量大二进制对象。值被视为二进制字符串。创建列时不需要指定长度。

in Text将值视为具有字符集的字符串。

每个BLOB或TEXT值由一个单独分配的对象内部表示。 在某些情况下,可能需要将诸如媒体文件等二进制数据存储在BLOB或TEXT列中。

相关问题