如果我在选择字段类型的时候,我都用大一些的。
比如,varchar(20)可能就够用了,但是我为了以后有可能扩充,我存成varchar(50)
再如,有些数值,用smallint就够了,我为了以后扩充,都存成bigint我想问一下,这样做,除了存储时,更占用更多的硬盘空间以外,会不会在数据量增多的时候,对查询的速度有影响?
如果有影响的话,会很明显地感觉到吗?

解决方案 »

  1.   

    对查询速度还是有影响的,但不是很大就是看的sql优化程度了。
      

  2.   

    对于 varchar 类型,其所需要的存储空间取决于实际存储的字串长度,因此扩大 varchar 类型的长度,并不会增加实际的存储空间。
    而对于 int 和 bigint 类型,无论其存储数值的大小,其实际都占用固定大小的存储空间(int 4 字节,bigint 8 字节)。表所占用的存储空间变大,不但会导致执行“table scan”时进行过多的 i/o,而且还会增加表上索引的层级数,导致“index seek”需要更多的 i/o。这样,当然会降低查询性能(表越大越明显)。