我正在研究mysql认证指南。在位数据类型部分,它说
BIT(4)每个值4位疮
并且BIT(n)列的存储要求是(n + 7)/ 8。我不明白这一部分。不知道BIT(4)只占用4位存储空间吗?
答案 0 :(得分:4)
实际上,对结果进行舍入是一种笨拙的方法。这意味着BIT(1)到BIT(8)取1个字节,BIT(9)到BIT(16)取2个字节等等......没有7位开销。将位数除以8并将结果四舍五入。 BIT(4)将占用1个字节。
答案 1 :(得分:2)
似乎有7位的开销 - 可能将一块内存识别为BIT存储。
将这7位添加到BIT(n)请求的数字中,并将总数除以8以得到字节数。 手册将(n + 7)/ 8定义为BYTES
因此4位需要少于2个字节。手册说“大约”,因为它取决于你是否谈论整个字节或分数。