SQL数据库结构优化
1、将字段很多的表分解成多个表
有些表在设计时设置了很多字段,这个表中有些字段的使用频率很低。当这个表的数据量很大时,查询语句的速度就会很慢。对于这种字段特别多且有些字段的使用频率很低的表,可以将其分解成多个表。当学生表中有很多字段,比如其中有一个extra字段存储学生的备注信息。。’有些备注信息的内容特别多,但是,备注信息很少使用。这样就可以分解出另一个表,将这个取名为studentextr】a。表中存储两个字段,分别为sno和extra。其中,sno字段为学生的学号,extra字段存储备注信息。如果需要查询某个学生的备注信息,可以用序号sno来查询。如果需要将学生的学籍信息与备注信息同时显示时,可以将student表和studentextra表进行链表查询。
select * from student, studentextra where student.sno =studentextra.sn通过这种分解,可以提高student表的查询效率。因此,遇到这种字段很多且有些字段使用不频繁的,可以通过这种分解的方式来优化数据库的性能。
2、增加中间表
有时候需要经常查询某两个表中的几个字段。如果经常进行连表查询,会降低MySQL数据库的查询速度。对于这种情况,可以建立中间表来提高查询速度。
先分析经常需要同时查询哪几个表的哪几个字段,然后将这些字段建立一个中间表,并从原来那几个表将数据插入到中间表中。之后就可以使用中间表来进行查询和统计了。
3、增加冗余字段
设计数据库表时尽量达到第三范式要求。但是,有时为了提高查询速度,可以有意识地在表中增加冗余字段。
<