18.3.3 增加冗余字段
设计数据库表时尽量让表达到三范式。但是,有时为了提高查询速度,可以有意识地在表中增加冗余字段。本小节将为读者介绍通过增加冗余字段来提高查询速度的方法。
表的规范化程度越高,表与表之间的关系就越多;查询时可能经常需要在多个表之间进行连接查询;而进行连接操作会降低查询速度。例如,学生的信息存储在student表中,院系信息存储在department表中。通过student表中的dept_id字段与department表建立关联关系。如果要查询一个学生所在系的名称,必须从student表中查找学生所在院系的编号(dept_id),然后根据这个编号去department查找系的名称。如果经常需要进行这个操作时,连接查询会浪费很多的时间。因此可以在student表中增加一个冗余字段dept_name,该字段用来存储学生所在院系的名称。这样就不用每次都进行连接操作了。
技巧:分解表、增加中间表和增加冗余字段都浪费了一定的磁盘空间。从数据库性能来看,增加少量的冗余来提高数据库的查询速度是可以接受的。是否通过增加冗余来提高数据库性能,这要根据MySQL服务器的具体要求来定。如果磁盘空间很大,可以考虑牺牲一点磁盘空间。
【责任编辑:云霞 TEL:(010)68476606】
点赞 0