如果我了解 MySQL 表的工作原理,那么即使大多数列都是空白的,表的每个实例都会消耗其全部内存分配。例如,一个空白的 TEXT 列即使为空也会消耗 65536 个字节。如果稍后仅在此列中输入几个字符,它仍会占用完整的 65536 个字节。
在 Rails 迁移中,您可以为每列设置字符限制。例如,您可以将该 TEXT 列限制为 500 个字符。这样做时,您是否还减少了为该列分配的内存,以便它消耗而不是 65536 字节,但需要多少字节来表示 500 个字符?
如果我确信该列将始终限制为 500 个字符,那么将其限制在数据库内还是仅在模型验证内是一种常见的做法?