比如说, int(6), 会不会节省数据库空间?int 占用4bytes, 但是如果这个数设定不大于“6”位,那就用最多2bytes。如果无论怎样都会用到4bytes,那么设定这个长度有什么用?谢谢。

解决方案 »

  1.   

    在sql中我不知道他们是怎么设计的,但我知道在c中一个类型在内存中占的字节数都是4的倍数,即使是只用一位的bool型的也会占用4个字节,其他的用空白填充。在定义结构体时c会自动合并一些类型的位置,以节省内存。
    这是c的做法,至于sql,没有研究过,我觉得应该也是这样吧。
    设定长度大概是限制你数据的完整性吧。呵呵,个人观点啊!
      

  2.   

    嗯,应该和c是2回事。比如说varchar(50),是限定了50个characters, 如果你用了“test”则实际上占了4+1=5 bytes (不考虑其他charsets)。不知道数字型是怎么回事。
      

  3.   

    int(6)和int(11)占的空间是一样多的。
      

  4.   

    To yueliangdao0608: 谢了先,可是那限定这个长度干什么?又不会节省空间。