【发布时间】:2012-12-06 20:31:31
【问题描述】:
我了解到 VARCHAR 占用唯一需要的内存,而 CHAR 则无论是否需要总是占用相同数量的内存。
我的问题:假设我有一个字段 VARCHAR(50),我知道如果它需要存储 30 个字符,它只会占用 30 个字节并且不会超过(假设 1 个字符需要一个字节)。那么我为什么还要提到 50 或 30 或任何上限,因为它只会占用所需的内存。
更新:既然不会占用无用的内存,为什么还要提上限呢?
【问题讨论】:
-
其中一个好处是,每当有人尝试在此列中输入
n(n>50) 字节时,数据库都会引发错误。所以数据库设计者可以确定这条记录不会浪费超过 50 个字节 -
@DiegoBasch 也许我应该修改问题标签
标签: mysql sql database database-design varchar