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