MySQL三范式
创始人
2024-05-29 22:55:38
0
  • 1、查询语句写的烂
  • 2、索引失效(数据变更)
  • 3、关联查询太多join(设计缺陷或不得已的需求)
  • 4、服务器调优及各个参数设置(缓冲、线程数等)

通常SQL调优过程

  • 观察,至少跑1天,看看生产的慢SQL情况。
  • 开启慢查询日志,设置阙值,比如超过5秒钟的就是慢SQL,并将它抓取出来。
  • explain + 慢SQL分析。
  • show profile。
  • 运维经理 or DBA,进行SQL数据库服务器的参数调优。

总结

  • 1、慢查询的开启并捕获
  • 2、explain + 慢SQL分析(没索引的先建索引)
  • 3、show profile查询SQL在Mysql服务器里面的执行细节和生命周期情况
  • 4、SQL数据库服务器的参数调优

数据库的分类

  • 关系型数据库:mysq/oracle/db2/informix/sysbase/sql server
  • 非关系型数据库:(特点:面向对象或者集合)
  • NoSql数据库:MongoDB(特点是面向文档)

1 表的设计合理化

1.1 为什么需要范式

一个软件项目基本都会用到数据库,项目开发前期分析客户的业务和数据处理需求,然后设计数据库的E-R模型图,确认需求信息的正确和完整。再就要将E-R图转换为多张表,表设计后,很可能结构不合理,出现数据重复保存,简称数据的冗余,这对数据的增删改查带来很多后患,所以我们需要审核是否合理,就像施工图设计后,还需要其他机构进行审核图纸是否设计合理一样。

如何审核呢?需要一些有关数据库设计的理论指导规则,这些规则业界简称数据库的范式。数据库范式为数据库的设计、开发提供了一个可参考的典范

1.2 三范式原理

通俗地理解三个范式,对于数据库设计大有好处。在数据库设计中,为了更好地应用三个范式,就必须通俗地理解三个范式(通俗地理解是够用的理解,并不是最科学最准确的理解

第一范式: 1NF是对属性的原子性约束,要求属性(列)具有原子性,不可再分解; (只要是关系型数据库都满足1NF)

第二范式: 2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;

第三范式: 3NF是对字段冗余性的约束,它要求字段没有冗余。没有冗余的数据库设计可以做到。

但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,允许冗余。

1.3 什么样的表才满足三范式

表的范式,是首先符合1NF, 才能满足2NF,进一步满足3NF

1NF:即表的列的具有原子性,不可再分解,即列的信息,不能分解,只有数据库是关系型数据库
在这里插入图片描述
2NF:表中的记录是唯一的,就满足2NF,通常我们设计一个主键来实现
在这里插入图片描述
3NF:即表中不要有冗余数据,就是说,表的信息,如果能够被推导出来,就不应该单独的设计一个字段来存放
在这里插入图片描述在这里插入图片描述
反3NF:在表1->n的情况下,为了提高效率可能会在1这张表设计字段提速
在这里插入图片描述

相关内容

热门资讯

中证A500ETF摩根(560... 8月22日,截止午间收盘,中证A500ETF摩根(560530)涨1.19%,报1.106元,成交额...
A500ETF易方达(1593... 8月22日,截止午间收盘,A500ETF易方达(159361)涨1.28%,报1.104元,成交额1...
何小鹏斥资约2.5亿港元增持小... 每经记者|孙磊    每经编辑|裴健如 8月21日晚间,小鹏汽车发布公告称,公司联...
中证500ETF基金(1593... 8月22日,截止午间收盘,中证500ETF基金(159337)涨0.94%,报1.509元,成交额2...
中证A500ETF华安(159... 8月22日,截止午间收盘,中证A500ETF华安(159359)涨1.15%,报1.139元,成交额...
科创AIETF(588790)... 8月22日,截止午间收盘,科创AIETF(588790)涨4.83%,报0.760元,成交额6.98...
创业板50ETF嘉实(1593... 8月22日,截止午间收盘,创业板50ETF嘉实(159373)涨2.61%,报1.296元,成交额1...
港股异动丨航空股大幅走低 中国... 港股航空股大幅下跌,其中,中国国航跌近7%表现最弱,中国东方航空跌近5%,中国南方航空跌超3%,美兰...
电网设备ETF(159326)... 8月22日,截止午间收盘,电网设备ETF(159326)跌0.25%,报1.198元,成交额409....
红利ETF国企(530880)... 8月22日,截止午间收盘,红利ETF国企(530880)跌0.67%,报1.034元,成交额29.0...