Mysql数据库表结构优化

前面介绍了服务器硬件、操作系统、msyql服务器配置,对数据库的影响,其实最重要的是数据库表结构对数据库的影响,良好的数据库逻辑设计和物理设计是数据库获取高性能的基础,数据库结构优化的目的:1、减少数据冗余,数据冗余是指相同的数据在多个地方存在,表中的某个列可以在其他某个列中获取到,2、尽量避免数据维护中出现更新、插入和删除异常,插入异常指的是,3、节约数据库存储空间。


数据库结构设计的步骤

需求分析:全面了解产品设计的存储需求、存储需求、数据处理需求、数据的安全性和完整性

逻辑设计:设计数据的逻辑存储结构、数据实体之间的逻辑关系,解决数据冗余和数据维护异常

物理设计:根据所使用的数据库特点进行表结构设计,关系型数据库,oralce、mysql,非关系数据库,mongo、redis、hadoop。存储引擎选择Innodb

维护优化:根据实际情况,对索引、存储结构等进行优化


数据库设计范式

在设计数据库的时候的一些规范,设计出没有数据冗余和数据维护异常的数据结构

数据库的第一范式:数据库表中的所有字段都只具有单一属性,单一属性的列是由基本的数据类型所构成的,设计出来的表都是简单的二维表,

数据库的第二范式:要求一个表中只有一个业务主键,也就是说符合第二范式的表中不能存在非主键列对只对部分主键的依赖关系

数据库的第三范式:指每一个非主属性既不部分依赖于也不传递依赖于业务主键,也就是在第二范式的基础上消除了非主属性对主键的传递依赖。


需求说明

按下面的需求设计一个电子商务网站的数据库结构

1、本网站只销售图书类商品

2、需要具有以下功能

用户登录   用户管理   商品展示   商品管理   供应商管理   在线销售

 用户登录及用户管理功能,用户必须注册并登录系统才能进行网上交易,用户名来做为用户信息的,用户信息:{用户名,密码,手机号,姓名,注册日期,在下状态,出生日期}。只有一个业务主键,一定是符合第二范式,没有属性和业务主键存在传递依赖的关系,符合第三范式, 

商品展示及商品管理功能


范式化设计的优缺点

优点:可以尽量的减少数据冗余

           范式化的更新操作比范式化更快

           范式化的表通常比反范式化更小

缺点:对于查询需要对多个表进行关联

           更难进行索引优化

反范式化设计的优缺点

优点:可以减少表的关联

           可以更好的进行索引优化

缺点:存在数据冗余及数据维护异常

           对数据的修改需要更多的成本

设计数据库时 要范式化和反范式化结合设计,逻辑设计阶段完成,下面做物理设计

物理设计 ,根据所选择的关系型数据库的特点对逻辑模型进行存储结构设计。

物理设计设计的内容

定义数据库、表及字段的命名规范:1、数据库、表及字段的命名要遵守可读性原则

                                                          2、数据库、表及字段的命名要遵守表意义性原则

                                                          3、数据库、表及字段的命名要遵守长名原则

选择合适的存储引擎:

为表中的字段选择合适的数据类型 ,当一个列可以选择多种数据类型时,应该优先考虑数字类型,其次是日期或二进制类型,最后是字符类型,对于相同级别的数据类型,应该优先选择占用空间小的数据类型,

建立数据库结构


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NeilNiu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值