数据库的设计及优化

  • 数据库的设计

  •  数据库的设计范式

        https://blog.csdn.net/so1125so/article/details/99710778

        数据冗余/查询效率/扩展

        数据冗余:如果数据库设计的不合理,保存大量数据后会出现大量的重复数据,这种现象称为数据冗余,通过拆分表格的形式,把可能大量重复的数据,用单独一张表保存,在原表中只需要通过id建立关系即可

  • 数据库的设计步骤

       A.需求分析阶段  

           准确了解与分析用户需求(包括数据与处理)

           是整个设计过程的基础,是最困难、最耗费时间的一步

       B.概念结构设计阶段

          是整个数据库设计的关键

          设计数据库的E-R模型图,确认需求信息的正确和完整

       C.逻辑设计阶段

          将E-R图转换为逻辑模型(逻辑模型为关系模型则体现为多张表)

          应用数据库设计的三大范式进行审核

          设计外模式,建立视图

       D.物理设计阶段

          确定存取方法(例如索引的设定)

          确定存储结构(文件存放的位置等),并编写代码实现前端应用

       E.数据库实施阶段

          将数据载入,并对数据库进行调试

       F.运行维护阶段

          使用和维护数据库

  • E-R模型图

       提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。

       在ER图中有如下四个成分:

       矩形框:表示实体,在框中记入实体名。

       菱形框:表示联系,在框中记入联系名。

       椭圆形框:表示实体或联系的属性,将属性名记入框中。对于主属性名,则在其名称下划一下划线。

       连线:实体与属性之间;实体与联系之间;联系与属性之间用直线相连,并在直线上标注联系的类型。(对于一对一联系,要在两个实体连线方向各写1; 对于一对多联系,要在一的一方写1,多的一方写N;对于多对多关系,则要在两个实体连线方向各写N,M。)

  • 实体关系(表)

       A.一对一:(个人信息和档案信息)

          外键字段添加唯一约束

          主键做外键

      B.一对多:(emp和dept)

      C.多对多:(student和corse)  创建关系表设计联合主键

  • 数据库的优化 

        表的引擎:

          1)innodb:支持数据库的高级操作,包括:事务、外键等

          2) myisam:仅支持数据库的增删改查操作

        查询记录数越少越好

        尽量走索引

  • 优化原则

        1) 尽量减少使用 *

        2) 索引失效:

          a) 索引列使用is null/is not null,索引失效

          b) 索引列不能使用函数(upper lower )

               包含也会导致索引失效。

          c) 索引列不能计算。

          d) 索引列使用not != <>索引失效。

          e) 使用or索引失效,使用union代替。

          f)  用EXISTS替代IN、用NOT EXISTS替代NOT IN   (索引(4.0版本以上 in 不走索引))

  • 备份和还原

      在cmd中执行命令

--备份(导出)
mysqldump -uroot -proot dbname > d:/t.msql;   
--导入
mysql -u root -p < C:\backup.sql   

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值