影响数据库性能的因素:
数据库结构(最大的), 服务器硬件, 操作系统 ,mysql服务器配置
良好的数据库逻辑设计和物理设计,是获得高性能的基础。
设计数据库结构,不仅仅是考虑到 业务需求,还有考虑到以后需要用到的哪些查询语句进行查询,进而进行设计数据库结构。
优化数据库结构,可以使查询的语句尽量的简单。这样需要考虑很多因素的
比如进行反范式设计的时候,可以加快一些查询语句的设计,同时也会影响一些查询语句的性能。所以需要平衡各方的利益,已达到最优。
数据库结构优化的目的:
1,减少数据冗余
2, 尽量避免数据维护中出现更新,插入,删除异常
插入异常:如果表中的某个实体,随着另一个实体而存在
更新异常:如果更改表中的某个实体的单独属性时,需要对多行进行更新
删除异常: 如果删除表中的某一个实体则会导致其他实体的消失
3,解决数据存储空间,提供查询的效率
数据结构设计的步骤:
需求分析:
1, 全面了解产品设计的存储需求
2,数据处理需求(读取和插入等)
3,数据的安全性和完整性(包括数据的生命周期等)
逻辑设计: 设计数据的逻辑存储结构,
数据实体之间的逻辑关系,解决数据冗余和数据维护异常
物理设计:根据所使用的数据库特点,进行表结构设计
维护优化: 根据实际情况,对索引,存储结构进行等进行优化和调整
设计范式:
表的设计 都是符合 第一范式的,
而第二范式 一般是 针对的是 复合主键来说得,如果只有一列是 主键,那么一般是符合第二范式的。
要求一个表中,只具有一个业务主键,符合第二范式的表中,不存在非主键列对只对只对部分主键有依赖关系。比如 有 两列的 复合主键, 表的某一个列 只依赖复合主键的某一个列,那么这样是不符合第二范式的。
第三范式是:在满足了第二范式的基础上,表中的所有列都是依赖于主键的。
比如 某一个列, 依赖于 某一个不是主键的列,那么这个表是不符合第三范式的,因为有主键传递依赖的关系,