选对字段类型是核心设计决策:整数按需取最小且优先无符号;金融数据必用DECIMAL;字符串首选VARCHAR,定长极短字段可用CHAR;时间统一用DATETIME;枚举改用TINYINT+字典表。选对字段类型不是细节问题,而是直接影响存储效率、查询性能和数据准确性的核心设计决策。关键不在"能用",而在"刚好够用"------小一点更省空间,确定性更强更少出错。整数类型:按需取最小,无符号优先整数类型要从 TINYINT → SMALLINT → MEDIUMINT → INT → BIGINT 逐级往上选,只用能满足业务最大值的最小类型。状态、开关、性别、年级等:用 TINYINT UNSIGNED(0~255),1 字节,快且省 用户 ID、订单号(预估不超 42 亿):用 INT UNSIGNED(0~4294967295),4 字节,通用稳妥 高频写入的超大规模表主键(如日志、消息ID):用 BIGINT UNSIGNED,避免未来溢出 明确不存负数的字段,一律加 UNSIGNED,既扩大正数范围,又防止误插负值 别用 INT(11) 这类带显示宽度的写法------它不影响存储和取值,纯属历史遗留显示控制,可忽略小数类型:金融必用 DECIMAL,浮点仅限科学场景FLOAT 和 DOUBLE 存的是近似值,计算时有精度漂移风险;DECIMAL 存的是精确十进制数,适合所有需要保真的场景。 RedClaw 百度推出的手机端万能AI Agent助手
相关推荐
oddsand13 小时前
Redis网络模型皮卡祺q3 小时前
【redies0-导论】分布式系统的演进-引进redis原因南极企鹅4 小时前
事务&@Transactional注解UrSpecial4 小时前
Redis与多线程bqq198610264 小时前
MySQL 8与MySQL 5.7的主要区别yaoxin5211234 小时前
406. Java 文件操作基础 - 字符与二进制流阿坤带你走近大数据4 小时前
Java中的JVM、类加载记住、多线程、性能优化的概念一勺菠萝丶4 小时前
macOS 安装 Python 包报错:`externally-managed-environment` 怎么解决?chushiyunen4 小时前
r树索引、mysql对r树的支持