在运行64位操作系统的MySQL中,每列至少占用64位?有点会占用整个字节?还是整个字?
答案 0 :(得分:3)
以下是我正在寻找的想法:
http://dev.mysql.com/doc/refman/5.5/en/storage-requirements.html
“数据的存储要求因所使用的存储引擎而异。不同的存储引擎使用不同的方法来记录原始数据和不同的数据类型。此外,一些引擎可能会压缩信息给定的行,无论是列还是整行,都可以计算给定表或列结构的存储要求[难]。“
每列至少占用64位?
你真的是指柱子还是行?我认为你的意思是排,但我并不完全确定。我无法弄清楚为什么你需要知道列描述的大小,因为AFAIK占用了O(1)空间...
有点会占用整个字节?还是整个字?
在记忆中:实际上并不确定 - 我倾向于占据整个单词,以便进行有意义的比较,但我真的不知道。除非你在谈论使用MEMORY存储引擎,否则......
在磁盘上:它确实依赖于您的存储引擎(如mdma所说),并且行大小根据您的存储引擎和字符集而有很大差异。例如,上面链接的文章解释了MyISAM根据每行需要记录的一些优化。
答案 1 :(得分:2)
它将在磁盘上为32位。我不知道内存,但我知道32位数字将会被提升到64位进行比较(即使在32位系统上,这也会让64位系统有点提升)。