在我看来,您正在优化错误的东西。
假设您的表中有 400 万行,并且您设法通过使用 NUMBER 或 CHAR(1) 字段平均每行节省 10 个字节的存储空间,这更难理解但占用的存储空间更少。您节省了整整 40 兆字节!呜呼!!!以当前的存储价格计算,这 40 兆字节……完全无关紧要。
你说的是用便士衡量的储蓄。某人试图找出您的 ENUM、CHAR(1) 字段的含义或 NUMBER 字段的正确解释所花费的时间以美元为单位。例如,如果承包商每年需要一分钟来理解压缩字段(“嗯……'O' 状态是指打开还是缺货……或者是零……零又意味着什么?”),以每小时 120 美元的咨询费率计算,您已经花费了更多 (2 美元) 来尝试找出压缩字段,而不是存储在存储上。
您的建议在 1970 年代(我记得很清楚,谢谢)那个存储昂贵且不充足的时代非常有意义 - 您保存了所有可能的字节,压缩字段,使用了 2 位数的年份(记住那些,任何人? :-),并使用了所有可以节省空间的技巧。现在的存储很便宜而且很丰富。我有可用的网络驱动器,以 TERABYTES 为单位!花费开发人员的时间来节省相对微量的存储空间在“试图解释结果所花费的时间”方面是浪费的,这导致“所涉及的时间花费了美元”。尽可能清楚地拼写出事情,并使事情尽可能容易解释。YMMV。