首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得最小mysql行大小

如何获得最小mysql行大小
EN

Stack Overflow用户
提问于 2014-04-13 19:31:30
回答 1查看 448关注 0票数 1

我正在MySql (InnoDB)中设计一个表,希望确保它占用磁盘上的绝对最小空间。我的问题是:行存储大小是否取决于表中列的顺序?

例如,下面是列顺序1:

代码语言:javascript
复制
    bigint (8 bytes)
    tinyint (1 byte)
    int (4 bytes)
    int (4 bytes)
    tinyint (1 byte)

此表行占用的磁盘空间是否与本例中的磁盘空间(订单2)有任何不同:

代码语言:javascript
复制
    bigint (8 bytes)
    tinyint (1 byte)
    tinyint (1 byte)
    int (4 bytes)
    int (4 bytes)

或者这个(命令3):

代码语言:javascript
复制
    bigint (8 bytes)
    int (4 bytes)
    int (4 bytes)
    tinyint (1 byte)
    tinyint (1 byte)

我记得很久以前,在一个顺序重要的环境中工作(重要的是不要将字段定位在4字节的边界上)。它对MySQL 5.x有影响吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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

它是一种特殊的存储引擎,在插入行时压缩它们。它没有索引,它只支持insertselect (不支持deleteupdate),但是对于只需要输出大量数据(日志之类的)的应用程序,它可能正是您想要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23047434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档