数据库优化的目标无非是避免磁盘I/O瓶颈、减少CPU利用率和减少资源竞争。
在基于表驱动的信息管理系统(MIS)中,基本表的设计规范是第三范式(3NF)。
第三范式的基本特征是非主键属性只依赖于主键属性。
基于第三范式的数据库表设计具有很多优点:
一是消除了冗余数据,节省了磁盘存储空间;
二是有良好的数据完整性限制,即基于主外键的参照完整限制和基于主键的实体完整性限制,这使得数据容易维护,
也容易移植和更新;
三是数据的可逆性好,在做连接(Join)查询或者合并表时不遗漏、也不重复;
四是因消除了冗余数据(冗余列),在查询(Select)时每个数据页存的数据行就多,这样就有效地减少了逻辑I/O,
每个Cash存的页面就多,也减少物理I/O;
五是对大多数事务(Transaction)而言,运行性能好;
六是物理设计(Physical Design)的机动性较大,能满足日益增长的用户需求。
在基本表设计中,表的主键、外键、索引设计占有非常重要的地位,但系统设计人员往往只注重于满足用户要求,
而没有从系统优化的高度来认识和重视它们。实际上,它们与系统的运行性能密切相关。现在从系统数据库优化角度讨
论这些基本概念及其重要意义: (1)主键(Primary Key):主键被用于复杂的SQL语句时,频繁地在数据访问中被用到。一个表只有一个主键。
主键应该有固定值(不能为Null或缺省值,要有相对稳定性),不含代码信息,易访问。
把常用(众所周知)的列作为主键才有意义。
短主键最佳(小于25bytes),主键的长短影响索引的大小,索引的大小影响索引页的大小,