这实际上不是一个编码问题,但我想学习一些东西。
我正在尝试为数据库中的项目保存图片 URL。起初,我创建了 type 的 *img_url* 列TEXT
,但事实证明它不能有我需要的默认值。
所以我想我会使用类似的东西VARCHAR(2000)
,但另一方面,大多数项目将具有值“local”,即 varchar(5)。所以我想了解的是,即使大多数单元格包含 5 个字符的字符串,表格是否会像所有行都有 2000 个字符的字符串一样使用内存空间?
查看有关存储要求的 MySQL 文档。
正如您将看到的,存储值的成本不在 VARCHAR(length) 中,而是与它存储的数据直接相关,并带有一些开销。
VARCHAR(M), VARBINARY(M) 如果列值需要 0 – 255 个字节,则 L + 1 个字节,如果值可能需要超过 255 个字节,则 L + 2 个字节
因此 valuelocal
将占用 6 个字节。
不,这就是VAR
in所VARCHAR
表示的。
请参阅VARCHAR 的文档,尤其是有关存储使用情况的表。