首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么与Server相比,这个表占用MySQL中磁盘空间的10倍?

为什么与Server相比,这个表占用MySQL中磁盘空间的10倍?
EN

Stack Overflow用户
提问于 2016-07-18 04:01:45
回答 1查看 373关注 0票数 2

我注意到,在MySQL中,与Server相比,表可以占用10倍的磁盘空间。通过在每个数据库中创建包含100列和1000行的表,我发现了这一点:

  • MySQL 1有100个TEXT类型的可空列。
  • Server具有类型为VarChar(MAX)的100个可空列
  • 每个都有一个INT类型的主键。

然后,我在两个数据库的所有列中插入了1000行GUIDS。以下是我得到的结果:

  • MySQL: 499 MB
  • Server: 41 SQL

为什么这两个数据库之间有这么大的不同?即使在新的、空的数据库上进行这个测试,我也会看到同样的结果。

下面是我使用的MySQL表定义:

代码语言:javascript
复制
create table data1(
    id MEDIUMINT NOT NULL AUTO_INCREMENT, 
    column1 text null, 
    column2 text null, 
    column3 text null, 
    -- ...
    column99 text null, 
    column100 text null, 
PRIMARY KEY (id))

下面是SQL Server one:

代码语言:javascript
复制
create table data1(id int IDENTITY(1,1) PRIMARY KEY, 
    column1 varchar(max) null, 
    column2 varchar(max) null, 
    column3 varchar(max) null, 
    -- ...
    column99 varchar(max) null, 
    column100 varchar(max) null)
EN

回答 1

Stack Overflow用户

发布于 2016-07-18 04:11:32

在Server中,将数据存储在固定宽度字段中,占用的空间与任何其他值(即字段的宽度(see here) )相同。

因此,您的Server表有100000个值,您将其插入存储为最大宽度VARCHAR

在MySQL中,您使用的是可变大小的TEXT字段。我认为这些数据甚至不需要存储在实际的表格中。TEXT的存储开销似乎不会占用那么大的空间。这似乎比SQL Server少得多,这说明了您的观察。

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

https://stackoverflow.com/questions/38428418

复制
相关文章

相似问题

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