我正在MySql (InnoDB)中设计一个表,希望确保它占用磁盘上的绝对最小空间。我的问题是:行存储大小是否取决于表中列的顺序?
例如,下面是列顺序1:
bigint (8 bytes)
tinyint (1 byte)
int (4 bytes)
int (4 bytes)
tinyint (1 byte)此表行占用的磁盘空间是否与本例中的磁盘空间(订单2)有任何不同:
bigint (8 bytes)
tinyint (1 byte)
tinyint (1 byte)
int (4 bytes)
int (4 bytes)或者这个(命令3):
bigint (8 bytes)
int (4 bytes)
int (4 bytes)
tinyint (1 byte)
tinyint (1 byte)我记得很久以前,在一个顺序重要的环境中工作(重要的是不要将字段定位在4字节的边界上)。它对MySQL 5.x有影响吗?
提前谢谢。
发布于 2014-04-14 07:53:19
当您有10亿条记录时,每个记录保存一个字节确实是10亿字节,但是保存在1000字节记录上的字节仍然只保存了0.1%,而不管记录的数量如何。都是相对的。:)
如果您想存储大量您既不经常也不快访问的数据,那么您可能会从实际压缩数据的存储工具中获益更多。也许您可以查看一下ARCHIVE存储引擎MySQL:
https://dev.mysql.com/doc/refman/5.0/en/archive-storage-engine.html
它是一种特殊的存储引擎,在插入行时压缩它们。它没有索引,它只支持insert和select (不支持delete和update),但是对于只需要输出大量数据(日志之类的)的应用程序,它可能正是您想要的。
https://stackoverflow.com/questions/23047434
复制相似问题