MySql 数据库中的空白区域

MySql 数据库中的空白区域

如果我没有使用适当的词汇,请原谅我。

我计划使用 PHP 前端实现 MySQL 数据库,这样我就可以将工单详细信息和文件(屏幕截图、ZIP 等)输入到该数据库中。目前,我以前的工单保存在电子邮件 PST 中,一次加载一个来查看和搜索以前的工单很不方便。

工作订单的描述可以是简短的句子,也可以是数千个字符。如果我有 VARCHAR() 或 TEXT/MEDIUMTEXT 数据类型,是否会为每个字段分配最大空间,或者数据库是否会将字段扩展到数据类型允许的容量?

我想用一种直观的方式来提出这个问题:我的文本字段是一个体积不变、水量可变的杯子,还是一个空气体积不断膨胀的气球?

答案1

这是一个气球。如果您只在字段中放入几个字节的文本,则该“单元格”将仅占用几个字节(加上单元格结构的成本)。这是假设您使用的是较常见的引擎之一。

不过,单元格结构的大小可以改变;这不是零和游戏。LONGTEXT 列每行每列将占用 4 个字节。VARCHAR 每行每列仅占用 1 个字节。这些字节用于描述实际单元格中数据的长度。现在存储非常便宜,除非您谈论的是数亿行,否则这并不重要。100 万行空 LONGTEXT 将使用 3.82MB,100 万行空 VARCHAR 将使用 0.95MB

相关内容