**库存储问题

时间:2013.06.16 发布人:chenxiwumei

**库存储问题

已解决问题

谷歌chenxiwumei用户在2013.06.16提交了关于“兵临城下**库存储问题”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-08-26T11:33:39。举例来说:建立了一个表,字段A,B,字段A是不可为空的,B可以空
插入一条记录
insertintotable(A,B)value(2,"str")

insertintotable(A)value(2)
上述两条记录占用的物理空间是不是一样的?
如果允许空(且实际中也通常是空的)的字段有10多个,要不要把这些字段独立出做一个表。我关注速度和存储效率。希望大家能够帮助她。

详细问题描述及疑问:举例来说:建立了一个表,字段A,B,字段A是不可为空的,B可以空
插入一条记录
insertintotable(A,B)value(2,"str")

insertintotable(A)value(2)
上述两条记录占用的物理空间是不是一样的?
如果允许空(且实际中也通常是空的)的字段有10多个,要不要把这些字段独立出做一个表。我关注速度和存储效率。期待您的答案,你无异于雪中送炭,让我感激涕零 !

希望以下的回答,能够帮助你。

第1个回答

用户名:q416366930  

对于固定表,每个字段占用的空间侍定的,对于整问答数类型的字段,无论数值是多大、多小占用字节数都相同,对于字符串字段,无论长度多在室送阶素哪宣长、多短占用的字节数都相同,长度超过字段定义宽度的部分无法存储,长度低于字段州指定义宽度的部分浪费。

对于动态表,里面字符串类型字段的长垂演景善走父用诗日接既度会影响占用物理空间的大小,超过定义长度的仍然无法存储,但是存储内容低于定义最大长度的能节省空间。

一般情况下,只要表有一个字段是变成字符串类型(VARCh**鲜而假他之判径AR),那么这个表就是动态表,所有的字符串类型(Ch**AR)字段实际上都是变长的。相反,如果没有任何一个VARCh**AR字段,那么这个表就侍定的。

对于动态表,可以节省存储空间,但是速度会变慢,道理很简单,特别是修改一个记录长度发生变化的时候,系统要延走集迅顺资材做许多事情。

以上的动态和固定,都只针对字符串类型,如果你的表都是液营植肥存储整数,那么肯定侍定的。里减慢破乐移然九玉结温无论存储的整数多大、多小未候鱼,占用的空间都是一样的。

另外脚知,对于允许为空的字段,该字段占用的空间要多一点,该类字段的物理存储中要多一个记录内容是否为空的地方。但是,对于允许为空的字段,如果侍定表、或者动态表的非字符串带类型字段,其占用的空间侍定的定里,只有在动态表的字符串类型字段里面,为空的字符串要比有内容的字符串少占用空间。