选对字段类型是核心设计决策:整数按需取最小且优先无符号;金融数据必用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助手
相关推荐
油丶酸萝卜别吃4 分钟前
Redis 布隆过滤器快速实现深念Y5 分钟前
stable-diffusion.cpp 的 FLUX.2 Klein 9B 分步whn19778 分钟前
oracle 的ora-19633处理阿pin15 分钟前
Java随笔-红黑树小弥儿17 分钟前
Firecrawl:把整个网页变成 AI 可查询的数据库swordbob26 分钟前
mysql数据库,明明有索引为啥不用2603_9651481129 分钟前
eBay商品数据API:寻找海外仓与价格洼地2601_9563198837 分钟前
TqSdk Tick 数据适合做什么?获取方法与使用边界晴天¥1 小时前
Oracle ASM、ACFS、FLEX ASM三者之间的关系?