MySQL 数据库中有一列 LONGTEXT 的内存消耗

Memory consumption of having a column LONGTEXT in MySQL database

我正在 MySQL 数据库中创建日志 table。其中一个字段将仅在大约 5% 的日志中使用,并将包含堆栈跟踪和其他供开发人员使用的冗长信息。我正在考虑使用 LONGTEXT 字段,但我想知道使用它是否会使我的数据库增长得非常快,即使该列在 95% 的行中都是空的。

所以我的问题很明确,即使该列在大多数行中为空,使用 LONGTEXT 列是否会消耗内存?例如,如果我改用 TEXT 并截断太长的字符串,我会在数据库中保存很多 space 吗?

重要的是要补充一点,随着时间的推移会有很多日志。

谢谢!

虽然 MySQL 与另一个差异略有不同,但一般来说,像 LONGTEXT 这样的 BLOB 类型的列本质上是可变长度的,在不使用时几乎不占用存储空间。他们需要的 space 在 NULL 值的情况下甚至没有分配。

至于您对缩放的担忧,只有一种方法可以找出答案:生成大量日志数据来测试您打算使用的任何模式。把它推得太满以至于它几乎死了,然后得到一些关于它能处理多少的指标。这会让您了解您的方法的可行性。