MySQL 字段设计有哪些规范?varchar 长度怎么定?
① 类型最小化:能 TINYINT 不用 INT,能 INT 不用 BIGINT(省空间、索引小、缓存命中高);② VARCHAR(N) 的 N 是字符数(utf8mb4 下最长 N*4 字节),按实际最大长度留余量(如姓名 50、URL 255、备注 500),过长用 TEXT;③ 定长高频列用 CHAR(如状态码、手机号 CHAR(11));④ 金额 DECIMAL(10,2)/DECIMAL(18,2),禁止 FLOAT/DOUBLE;⑤ 整数:状态用 TINYINT/枚举、主键 BIGINT;⑥ 时间 DATETIME(或 TIMESTAMP 需注意 2038);⑦ NOT NULL + 默认值(减少 NULL 坑);⑧ 加注释 COMMENT;⑨ 预留扩展用新表/新字段而非宽列。
一起交流
分享经验,让问题更进一步
讨论,从你的观点开始
还没有回复,欢迎补充经验或分享不同的思路。