BIT(1)的存储大小是多少?

时间:2011-10-16 16:17:40

标签: mysql database storage

我一直认为BIT(1)列的存储空间大小为1位。

但是http://dev.mysql.com/doc/refman/5.6/en/storage-requirements.html

表示大约是(1 + 7)/ 8字节= 1字节= 8位

如果我有32000行BIT(1)数据,是否意味着需要32000 *(1 + 7)/ 8字节= 32000字节的存储空间?

2 个答案:

答案 0 :(得分:4)

BIT(M)约(M + 7)/ 8字节

http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html

- >数据需要对齐,所以mysql需要多个字节

答案 1 :(得分:1)

这意味着数据库引擎不能只存储一位。它将组合表中的所有位字段并将它们存储在一起,直到它达到它可以存储在磁盘上的最小大小(比如32位机器上的4个字节)。下一位字段将存储在第二个4字节存储器插槽中。

因此,在这个典型的32位机器上,一位或32位需要4个字节,33位需要8个字节。