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