这是我第一次在这里发帖,所以希望我没有搞乱什么。
我使用了一个alter表,在现有的数据库中添加了一个bit类型的列,以便知道该商品是否缺货。当添加新列时,它得到的是空值,所以我想把它更新为0(库存中),在大多数数据库中,都没有问题。问题是在较大的数据库中,我发现数据分区的大小增长了很多(从700 GB到800 GB),导致一些驱动器空间的问题。
表的行数大约有20亿行,所以数据分区上的增加是在意料之中的,但没想到一 bit
类型列可能会导致这样的增加,因为它认为每个列应该消耗1个比特(或至少据我所知)。
我不是数据库专家,我需要确定为什么会发生这种情况,以便更好地理解,并能够继续对其余数据库进行修改,确保这不会失控。
位类型是按表打包成字节的,所以在表中增加一个位类型列(如果之前没有任何位类型列),每行将花费1个字节。
添加第二到第八位列是免费的。
增加第九位,要多花1个字节的存储费用等。