关于 mysql 的一个问题请教

2015-09-12 21:26:05 +08:00
 chenai

我们公司有一张表结构如下:
id | int (11 ) | NO | PRI | NULL | auto_increment |
userId| int (11 ) unsigned | NO | MUL | 0 | |
friend| int (11 ) unsigned | NO | | 0 | |
status| tinyint (1 ) unsigned | NO | | 0 | |
created| int (11 ) unsigned | NO | | 0 | |
updated| int (11 ) unsigned | NO | MUL | 0 | |
shopId| int (11 ) unsigned

这张表大概有 2-3 亿条数据,可是为什么这张表只占用了 50G 左右的磁盘空间呢?
InoDB 是有做数据压缩吗?

1969 次点击
所在节点    程序员
5 条回复
zts1993
2015-09-12 21:45:15 +08:00
全是 int 嘛。。。。。
wy315700
2015-09-12 21:49:11 +08:00
一条记录 25 字节,, 2 亿条, 50 亿字节,如果不算额外的数据的话,也就 5G ,,,,,犹豫是数据库,有各种额外字段,所以用了 50G
chenai
2015-09-12 21:54:12 +08:00
@zts1993 int 在 mysql 至少也要 4 个字节吧? 300000000 * 4 /(1024*1024 ) = 1144G 左右 ,我算的有错吗?
chenai
2015-09-12 21:55:22 +08:00
@wy315700 好吧,我懂了,数据库小白
zts1993
2015-09-12 22:25:46 +08:00
@chenai == 字节 /1024 是 K 。。所以是 /1024 /1024 /1024 。。量级锁了。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/220244

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX