MYSQL,如果定义了一个字符串的字段,长度为255,那么当我添加一个空字符串数据时占用空间吗?

时间:2022-12-30 21:14:31
MYSQL,如果定义了一个字符串的字段,长度为255,那么当我添加一个数据,这个数据这个字符串字段是""(空的),拿这个时候占用空间的空间是255个字符吗?还是是这个字符串的实际占用空间大小?

16 个解决方案

#1


这个字符串的实际占用空间大小

#2


以前试验过,是按照实际的字符串大小占用的

#3


没有阅读仔细看过过mysql的源码,但是个人认为,对于数据这类文本操作,如果要提升速度的话,最好先把位置占住,不然每次都要移动这个数据以后的文件指针,而且如果有索引的话,还要重新去更新索引,但是这样缺点明显,占空间。

#4


应该视你定义的字段类型
varchar,text应该是输入多少就占多少。。
char的话,应该是你定义多长,就占多少。。

个人意见。。。

#5


占用的实际大小

#6


http://dev.mysql.com/doc/refman/5.1/zh/column-types.html#char

#7


回复人:kingerq(多菜鸟) ( 两星(中级)) 信誉:110  2007-08-10 09:59:35  得分:0

应该视你定义的字段类型
varchar,text应该是输入多少就占多少。。
char的话,应该是你定义多长,就占多少。。

个人意见。。。

#8


得看类型!文档里字段类型都说了
varchar.动态分配.就是varchar,text应该是输入多少就占多少。。
char的话,你定义多长,就占多少。。
所以现在数据库字段类型的时候都家一般都用varchar

#9


楼上的说的不错,就是那样的!

#10


占空间,

#11


varchar 的话 是变长的,而变长 的意义就在这儿,它会根据字符串的长度的不同占用不用的空间,而char则不同,它如果你的字符串长度没有达到其长度,则会自动补齐到你设定的长度,带来的效果就是  varchar 的话,位置的是不定的,而char 通过计算即可以直接找到,所以char 效率会比varchar效率高一些,但是varchar占用的空间会少一些,事实上,一般不需要考虑这么多,字符串长的就用varchar ,短的比如20个以下的直接用char就可以了。

哈哈!
个人意见!

#12


varchar.动态分配.就是varchar,text应该是输入多少就占多少。。
char的话,你定义多长,就占多少。
-----------------------------------
同意ldq210() 的说法

#13


varchar要比实际长度+1
char 占用定义长度

#14


定长的字符适合用char比如md5过的密码字段,可以节省数据库存储空间
长度变化范围大的字段可用varchar或其他类型

#15


楼上说的有道理..

#16


MYSQL,如果定义了一个字符串的字段,长度为255,那么当我添加一个空字符串数据时占用空间吗?

#1


这个字符串的实际占用空间大小

#2


以前试验过,是按照实际的字符串大小占用的

#3


没有阅读仔细看过过mysql的源码,但是个人认为,对于数据这类文本操作,如果要提升速度的话,最好先把位置占住,不然每次都要移动这个数据以后的文件指针,而且如果有索引的话,还要重新去更新索引,但是这样缺点明显,占空间。

#4


应该视你定义的字段类型
varchar,text应该是输入多少就占多少。。
char的话,应该是你定义多长,就占多少。。

个人意见。。。

#5


占用的实际大小

#6


http://dev.mysql.com/doc/refman/5.1/zh/column-types.html#char

#7


回复人:kingerq(多菜鸟) ( 两星(中级)) 信誉:110  2007-08-10 09:59:35  得分:0

应该视你定义的字段类型
varchar,text应该是输入多少就占多少。。
char的话,应该是你定义多长,就占多少。。

个人意见。。。

#8


得看类型!文档里字段类型都说了
varchar.动态分配.就是varchar,text应该是输入多少就占多少。。
char的话,你定义多长,就占多少。。
所以现在数据库字段类型的时候都家一般都用varchar

#9


楼上的说的不错,就是那样的!

#10


占空间,

#11


varchar 的话 是变长的,而变长 的意义就在这儿,它会根据字符串的长度的不同占用不用的空间,而char则不同,它如果你的字符串长度没有达到其长度,则会自动补齐到你设定的长度,带来的效果就是  varchar 的话,位置的是不定的,而char 通过计算即可以直接找到,所以char 效率会比varchar效率高一些,但是varchar占用的空间会少一些,事实上,一般不需要考虑这么多,字符串长的就用varchar ,短的比如20个以下的直接用char就可以了。

哈哈!
个人意见!

#12


varchar.动态分配.就是varchar,text应该是输入多少就占多少。。
char的话,你定义多长,就占多少。
-----------------------------------
同意ldq210() 的说法

#13


varchar要比实际长度+1
char 占用定义长度

#14


定长的字符适合用char比如md5过的密码字段,可以节省数据库存储空间
长度变化范围大的字段可用varchar或其他类型

#15


楼上说的有道理..

#16


MYSQL,如果定义了一个字符串的字段,长度为255,那么当我添加一个空字符串数据时占用空间吗?