首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库内存是如何分配的?

问数据库内存是如何分配的?
EN

Stack Overflow用户
提问于 2011-10-28 03:04:29
回答 2查看 1.3K关注 0票数 2

如果我声明了一堆并不总是必需的字段,是为创建的每条记录分配内存,还是在初始化字段之前不分配内存?

例如:如果我声明了一个带有id字段和char(8)字段的表,是在每次生成id并将其输入到表中时为字符串分配内存,还是仅在为字符串赋值时才分配内存?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-28 03:10:00

数据库将为类型大小不变的字段分配一组内存,如数字字段和char(n)。例如,对于varchar(n) (可变长度)类型的字段,它们将与其中包含的数据一样大。

在您的示例中,字段类型为char(8)将为所有8个字符分配内存。如果您将字段类型设置为varchar (或nvarchar),那么它将只分配分配给它的空间。

可以阅读更多关于mysql字符串类型here的内容。

票数 2
EN

Stack Overflow用户

发布于 2011-10-28 03:09:38

简而言之:它每次都会占用内存(或硬盘空间)。

如果字段是char(8),它将始终分配8个字节(加上用于数据库标题的前导2个字节)。如果它是一个空的varchar(34),那么它将占用的最小空间是2。

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

https://stackoverflow.com/questions/7920984

复制
相关文章

相似问题

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