1.设计中间表
设计中间表,一般针对于统计分析功能,或者实时性不高的需求。
2.设计冗余字段
为减少关联查询,创建合理的冗余字段(创建冗余字段还需要注意数据一致性问题)
3.折表
对于字段太多的大表,考虑折表(比如一个表有100多个字段)
对于表中经常不被使用的字段或者存储数据比较多的字段,考虑折表
4.主键优化
每张表建议都有一个主键(主键索引),而且主键类型最好是int类型,建议自增主键(不考虑分布式系统情况下 雪花算法)
5.字段的设计
- 数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。
- 尽量把字段设置为not null,这样在将来执行查询的时候,数据库不通用去比较null值。
- 对于某系文本字段,例如“省份”或者“性别“我们可以将它们定义为ENUM类型。因为在MySQL中,ENUM类型被当作数值型数据来处理,而数值型类型数据被处理起来的速度要比文本类型快得多。这样,我们又可以提高数据库的性能。
- 能用数字的用数值类型