我在MySQL数据库中创建了一个日志表。其中一个字段仅用于大约5%的日志中,并且将包含堆栈跟踪和其他开发人员冗长的信息。我正在考虑使用LONGTEXT字段,但我想知道如果使用它会使我的数据库增长得非常快,即使这个列在95%的行中都是空的。
所以我的问题是明确的,即使在大多数行中此列为空时,是否存在LONGTEXT列的内存消耗?例如,如果我使用TEXT而截断太长的字符串,我是否会在数据库上节省大量空间。
重要的是,随着时间的推移,会有很多日志。
谢谢!
答案 0 :(得分:5)
虽然它与MySQL的一个区别略有不同,但一般而言,像LONGTEXT这样的BLOB类型列本身具有可变长度,并且在不使用时几乎不占用存储空间。在NULL
值的情况下,它们所需的空间甚至不被分配。
至于您对扩展的担忧,只有一种方法可以找到:生成大量的日志数据来测试您打算使用的任何模式。将它推得太满以至于它几乎死了,然后得到一些它可以处理多少的指标。这将让您了解您的方法的可行性。