数据库存储引擎与三大范式

数据库存储引擎与三大范式

一、数据库的存储引擎

数据库使用不同的存储技术将数据存储在数据库之中。目前mysql的常用存储引擎为:Myisam和InnoDB两种。

1.存储引擎是数据库的组件之一,负责为数据库执行I/O(input/output)操作。加快数据的读写。

2.数据在存入数据库之前会传输到存储引擎,在按照存储的格式进行存储。

二、Myisam存储引擎

Myisam存储引擎是mysql5.5版本之前的默认存储引擎。其特点就是:

1)读取数据的速度特别快。

2)不占用大量的内存和存储资源。

3)可以缓存索引,提高访问能力。

缺点:

1)不支持事务。

2)处理并发能力不够。

3)Myisam在读写过程互相阻塞。

Myisam 存储引擎使用的场景:

1)公司单方面读取数据的业务较多。

2)读写并发访问相对较低的业务。

3)服务器硬件资源相对较差。

4)对数据业务一致性要求不高的业务。

5)读写频繁的场合不适合。

三、InnoDB存储引擎

InnoDB在mysql5.5版本之后支持全文索引支持外键约束。InnoDB的主要特点有:

1)可以支持事务。

2)处理并发能力好。

3)可以处理数据频繁更新的场景。

4)对计算机设备配置要求较高。

5)主要是行锁定。

存储引擎的选择

不同的存储引擎都有各自的特点,以适应不同的需求,如下表所示:
在这里插入图片描述
如果要提供提交、回滚、崩溃恢复能力的事物安全(ACID兼容)能力,并要求实现并发控制,InnoDB是一个好的选择

如果数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率

如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的Memory引擎,MySQL中使用该引擎作为临时表,存放查询的中间结果

如果只有INSERT和SELECT操作,可以选择Archive,Archive支持高并发的插入操作,但是本身不是事务安全的。Archive非常适合存储归档数据,如记录日志信息可以使用Archive

使用哪一种引擎需要灵活选择,一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求,使用合适的存储引擎,将会提高整个数据库的性能

数据库设计范式

概述

什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些

规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。

什么是三大范式:

第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要

求,否则,将有很多基本操作在这样的关系模式中实现不了。

第二范式:如果关系模式R满足第一范式,并且R得所有非主属性都完全依赖于R的每一个候选关键属性,称R满足第二范式,简记为2NF。

第三范式:设R是一个满足第一范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,称R满足第三范式,简记为3NF.

理解三大范式

第一范式

1、每一列属性都是不可再分的属性值,确保每一列的原子性
2、两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据。

第二范式

每一行的数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来。

第三范式

数据不能存在传递关系,即没个属性都跟主键有直接关系而不是间接关系。像:a–>b–>c 属性之间含有这样的关系,是不符合第三范式的。

比如Student表(学号,姓名,年龄,性别,所在院校,院校地址,院校电话)

这样一个表结构,就存在上述关系。 学号–> 所在院校 --> (院校地址,院校电话)

这样的表结构,我们应该拆开来,如下。

(学号,姓名,年龄,性别,所在院校)–(所在院校,院校地址,院校电话)

总结

三大范式只是一般设计数据库的基本理念,可以建立冗余较小、结构合理的数据库。如果有特殊情况,当然要特殊对待,数据库设计最重要的是看需求跟性能,需求>性能>表结构。所以不能一味的去追求范式建立数据库。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值