我一直认为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字节的存储空间?
答案 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个字节。