如何分配数据库内存?

时间:2011-10-27 19:04:29

标签: mysql database

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

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

2 个答案:

答案 0 :(得分:2)

简短回答:每次都需要记忆(或硬空间)。

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

答案 1 :(得分:2)

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

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

可以阅读有关mysql字符串类型here的更多信息。

相关问题