原谅我,如果我不使用适当的词汇。
我计划在PHP前端实现一个MySQL数据库,这样我就可以将工作单细节和文件(screengrabs,ZIP等等)input到数据库中。 就像现在一样,我以前的工作单被保存在电子邮件PST中,并且一次只安装一个工作单来检查和search以前的工作单是不方便的。
工作单上的描述可以是一个长达数千个字符的简短句子。 如果我将列的值设置为VARCHAR( i )或TEXT / MEDIUMTEXT数据types,那么最大空间将分配给每个字段,还是数据库会将字段扩展到数据types所允许的容量?
我想问一个这个问题的视觉方式是,我的文本字段是一个杯子,它的体积不变,水量不定,还是一个膨胀的空气量的气球?
这是一个气球。 如果你只在字段中放置了几个字节的文本,那么“cell”只占用几个字节(加上任何单元结构的成本)。 这是假设你正在使用一个更常见的引擎。
细胞结构虽然可以改变大小, 这不是一个零和游戏。 一个LONGTEXT列将占用每行每列4个字节。 一个VARCHAR将只占用每行每列1个字节。 这些字节用于描述实际单元中数据的长度。 现在,存储的价格如此便宜,除非你谈论数以亿计的行,否则这并不重要。 一百万行的空LONGTEXT将使用3.82MB和一百万行的空VARCHAR将使用0.95MB