数据库设计建表
表优化与类型选择
1.定长与变长分离
如 id int占4个字节,char(4)占据4个字符长度也是定长
即每个单元值占据的字节是固定的
核心且常用字段宜建成一张表
注:而varchar,text,blob变长字段适合单方一张表,用主键和核心表关联起来
2.常用字段和不常用字段分离
结合网站具体业务分析,分析字段查询场景,查询频度低的字段,单拆分出来
3.在一对多需要关联统计的字段上添加冗余字段
空间换时间统计模块下贴子数量如果使用jion in联合查询则短时间内存增加相乘关系
列选择原则:
字符类优先级 整形>data, time>enum,char>varchar>blob,text
列特点分析:
整型:定长没有国家/地区之分,没有字符集的差异。
Enum类型:存男和女 底层进行转化成数字。
Text 和 blob 无法使用内存临时表(排序等操作只能在磁盘上进行 )
够用就行,不要慷慨(smallint,varchar(N))
原因:大的字段浪费内存,影响速度。
尽力避免使用NULL
愿因:NULL 不利于索引