物理设计介绍

所谓的数据库的物理设计呢,就是根据所选择的关系型数据库的特点,对逻辑数据库中,所建立的模型,

进行具体的存储结构的设计,针对我们的MYSQL,进行物理设计阶段呢

主要包括以下的一些内容,首先定义数据库表,及字段的命名规范,接下来就是要选择合适的存储引擎,

为表中的字段建立合适的数据类型,以及建立数据表的具体的结构,现在我们依次来看一下每一项中,

所具体的工作

首先是定义数据库,表,字段的命名规范,我们当前的程序项目,开发往往是多个人协作完成的,

所以为了工作中的工作方便,我们就需要为数据库,表,字段,起名字呢,都有一个共同约定的规范,

这个就称之为命名规范,符合我们约定的命名规范呢,来建立数据库,表,在大家不用查看数据字典的情况下呢,

可以基本的知道,这个库表中,以及表中的字段中,大概的内容是什么,要做到这一点呢,我们在对数据库命名时呢,

有以下几个原则,首先第一个原则称之为可读性原则,而所谓的可读性原则呢,就是说,在对数据库起名时呢,我们应该

尽量的使名称有更好的可读性,比如使用下划线来分割不同的单词,或者对每个单词的首字母进行大写,不过要注意的

是,对于MYSQL来说,表名的大小写呢,是敏感的,所以我们使用大小写字母的方式呢,来区分命名不同的部分呢,可能会在

以后我们的使用中呢,造成不必要的麻烦,而第二个要遵守的规范呢,表意型原则,也就是在我们给命名时呢,应该给表起

有意义的名字,例如呢,我们刚才在设计订单表中,起名叫ORDER表,也可以起名为t1表,但是显然启用order这个命名呢,

要比t1更能够体现这种表中所存储的内容,所以我们要选中order这个表名,而数据库命名的最后一个原则呢,就称之为长

名性原则,而有些开发人员呢,进行命名时喜欢比较短的名字,这种命名方法呢,往往使得,名字无法体现出所代表的内容,

所以第三个原则实际上就是要求我们,在进行数据库对象命名时呢,尽量少的使用或者是不使用缩写,当然对象的名字也不能

太长,否则使用起来就不方便了,所以对于以上原则呢,还要把握一个适度的原则,按照物理设计的步骤呢,下面就要选择合适的

存储引擎了

前面的内容中呢,对于MYSQL常用的存储引擎,以及各自的特点呢,都做过一个详细的介绍,所以我们在这里

就不再做重复的说明了,下表列出了mysql存储引擎的特点,我们从这个表中也可以看出,我们的业务使用什么样的存储

引擎比较合适,下面我们简单地来看一下这张表

首先说一下MyISAM存储引擎,他呢是非事务的,并且它的锁粒度呢,是表级锁,它主要应用呢,是select和

insert这种场景下,忌用在读写比较频繁的表中,因为在读写比较频繁的表下呢,他很容易进行锁表,所以会

阻塞我们并发的查询,性能也不会太好,MRG_MYISAM呢,实际上和MYISAM是差不多的了,他只不过是把多个MYISAM

表呢,合成一个表来使用,所以他同样是支持表级锁的,它主要应用场景呢,主要用于分段归档啊,数据仓库的情况下,

而且禁用在全局查询过多的情况下,因为如果全局查询的多呢,性能就会很差,因为多个表查询之后再进行汇总,

而Innodb呢,同样我们说过了,它是支持事务的存储引擎,并且支持MVC的行级锁,主要应用场景呢,事务处理,当然了,

之前我们也说过,除了事务处理,实际上在大多数场景中呢,都可以使用Innodb,所以他的忌用场景是无,而Archive存储

引擎呢,它是不支持事务的,同样他的锁是行级锁,之前我们介绍过,他的主要适用场景呢,主要是用于日志记录,或者

只支持insert,和select操作,对于其他的delete,update操作呢,它是不支持的,所以如果想要用到随机读取,或者更新

删除,是不适合使用的,最后Ndb存储引擎,这个是MYSQL集群存储引擎,同样他支持行级锁,同样他的作用场景是高可用的场景,

但是要注意呢,当前NDB存储引擎呢,要求把数据呢,全部存储在内存中的,效率并不高,在大部分应用中是不建议使用的

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库物理设计(1)全文共2页,当前为第1页。数据库物理设计(1)全文共2页,当前为第1页。物理结构设计 数据库物理设计(1)全文共2页,当前为第1页。 数据库物理设计(1)全文共2页,当前为第1页。 数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,为给定的数据库模型确定合理的存储结构和存取方法。所谓的"合理"主要有两个含义:一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度。 为了设计数据库的物理结构,设计人员必须充分了解所用DBMS的内部特征;充分了解数据系统的实际应用环境,特别是数据应用处理的频率和响应时间的要求;充分了解外存储设备的特性。数据库的物理结构设计大致包括:确定数据的存取方法、确定数据的存储结构。 物理结构设计阶段实现的是数据库系统的内模式,它的质量直接决定了整个系统的性能。因此在确定数据库的存储结构和存取方法之前,对数据库系统所支持的事务要进行仔细分析,获得优化数据库物理设计的参数。 对于数据库查询事务,需要得到如下信息: l 要查询的关系。 l 查询条件(即选择条件)所涉及的属性。 l 连接条件所涉及的属性。 l 查询的投影属性。 对于数据更新事务,需要得到如下信息: l 要更新的关系。 l 每个关系上的更新操作的类型。 l 删除和修改操作所涉及的属性。 l 修改操作要更改的属性值。 上述这些信息是确定关系存取方法的依据。除此之外,还需要知道每个事务在各关系上运行的频率,某些事务可能具有严格的性能要求。例如,某个事务必须在20秒内结束。这种时间约束对于存取方法的选择有重大的影响。需要了解每个事务的时间约束。 值得注意的是,在进行数据库物理结构设计时,通常并不知道所有的事务,上述信息可能不完全。所以,以后可能需要修改根据上述信息设计物理结构,以适应新事务的要求。 1. 确定关系模型的存取方法 确定数据库的存取方法,就是确定建立哪些存储路径以实现快速存取数据库中的数据。现行的DBMS一般都提供了多种存取方法,如索引法、HASH法等。其中,最常用的是索引法。 数据库物理设计(1)全文共2页,当前为第2页。数据库物理设计(1)全文共2页,当前为第2页。数据库的索引类似书的目录。在书中,目录允许用户不必浏览全书就能迅速地找到所需要的位置。在数据库中,索引也允许应用程序迅速找到表中的数据,而不必扫描整个数据库。在书中,目录就是内容和相应页号的清单。在数据库中,索引就是表中数据和相应存储位置的列表。使用索引可以大大减少数据的查询时间。 数据库物理设计(1)全文共2页,当前为第2页。 数据库物理设计(1)全文共2页,当前为第2页。 但需要注意的是索引虽然能加速查询的速度,但是为数据库中的每张表都设置大量的索引并不是一个明智的做法。这是因为增加索引也有其不利的一面:首先,每个索引都将占用一定的存储空间,如果建立聚簇索引(会改变数据物理存储位置的一种索引),占用需要的空间就会更大;其次,当对表中的数据进行增加、删除和修改的时候,索引也要动态地维护,这样就降低了数据的更新速度。 在创建索引的时候,一般遵循以下的一些经验性原则: l 在经常需要搜索的列上建立索引。 l 在主关键字上建立索引。 l 在经常用于连接的列上建立索引,即在外键上建立索引。 l 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的。 l 在经常需要排序的列上建立索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询的时间。 l 在经常成为查询条件的列上建立索引。也就是说,在经常使用在WHERE子句中的列上面建立索引。 同样,对于某些列不应该创建索引。这时候应该考虑下面的指导原则: l 对于那些在查询中很少使用和参考的列不应该创建索引。因为既然这些列很少使用到,有索引并不能提高查询的速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。 l 对于那些只有很少值的列不应该建立索引。例如,人事表中的"性别"列,取值范围只有两项:"男"或"女"。若在其上建立索引,则平均起来,每个属性值对应一半的元组,用索引检索,并不能明显加快检索的速度。 时刻怀有一颗虔诚之心,乐于分享。知识才更有意义。 数据库物理设计(1)

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值