加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

是什么影响了数据库索引选型?

发布时间:2018-08-18 09:07:30 所属栏目:编程 来源:程序猿的内心独白
导读:技能沙龙 | 邀您于8月25日与国美/AWS/转转三位专家配合切磋小措施电商拭魅战 主存存取道理 主存的组成 主存储器(简称主存或内存)包罗存取体、各类逻辑部件及节制电路等。存储体由很多存储单位构成,每个存储单位又包括多少个存储元件,每个存储元件能寄存一
副问题[/!--empirenews.page--] 技能沙龙 | 邀您于8月25日与国美/AWS/转转三位专家配合切磋小措施电商拭魅战

主存存取道理

主存的组成

主存储器(简称主存或内存)包罗存取体、各类逻辑部件及节制电路等。存储体由很多存储单位构成,每个存储单位又包括多少个存储元件,每个存储元件能寄存一位二进制代码“0”或“1”。这样,一个存储单位可以存储一串二进制代码,这串二进制代码称为存储字,这串二进制代码的位数称为存储字长,可所以8位、16位可能32位等。

是什么影响了数据库索引选型?

主存与CPU的接洽

是什么影响了数据库索引选型?

MAR(Memory Address Register)是存储器地点寄存器,用来存放欲会见的存储单位的地点,其位数对应存储单位的个数(若MAR为10位,则有210=1024个存储单位,记为1k)。

MDR(Memory Data Register)是存储器数据寄存器,用于存放从存储体某单位取出的代码或筹备往某存储单位存入的代码,其位数与存储字长相称。

当代计较机一样平常将MAR和MDR集成在CPU芯片中。

主存的存取进程

假如把存储体看做是一栋大楼,那么每个存储单位可以当作这栋大楼里的每个房间,每个存储元可以看做房间里的一张床位,床位有人相等于“1”,无人相等于“0”。每个房间都必要一个房间号,便于我们找到房间的位置。同样,可以赋予每个存储单位一个编号,称为存储单位的地点号。

主存的事变方法就是凭证存储单位的地点号来实现对存储字列位的存(写入)、取(读出)。

当代主存的布局和存取道理较量伟大,这里抛却详细不同,抽象出一个异常简朴的存取模子来声名主存的事变道理。

是什么影响了数据库索引选型?

主存的存取进程如下:

当体系必要读取主存时,起首由CPU将该字的地点送到MAR,经地点总线送至主存,然后发出读呼吁。主存接到读呼吁后,按照地点定位到指定存储单位,然后将此存储单位数据放到数据总线上,供其余部件读取。

写主存的进程相同,若要向主存存入一个信息字时,起首CPU将该字要存入的主存单位的地点经MAR送到地点总线,并将信息字送入MDR,然后向主存发出写呼吁,主存接到写呼吁后,便将数据总线上的信息写入到对应地点总线指出的主存单位中。

画外音:现实上主存存取的进程并没有这么简朴,还必要颠末颠末地点译码(逻辑地点—>物理地点)等进程。

磁盘存取道理

是什么影响了数据库索引选型?

我们知道,索引自己也很大,不行能所有存储在内存中(根节点常驻内存),一样平常以文件情势存储在磁盘上。那么题目来了,索引检索必要磁盘I/O操纵。与内存差异,磁盘I/O存在机器行为淹灭,相对付内存存取,I/O存取的耗损要高几个数目级。

磁盘的组成

磁盘的整体布局表示图:

是什么影响了数据库索引选型?

一个磁盘由巨细沟通且同轴的圆形盘片构成,磁盘可以动弹(各个磁盘必需同步动弹)。在磁盘的一侧有磁头支架,磁头支架牢靠了一组磁头,每个磁头认真存取一个磁盘的内容。磁头不能动弹,可是可以沿磁盘半径偏向行为(现实是斜切向行为),每个磁头统一时候也必需是同轴的,即从正上偏向下看,全部磁头任何时辰都是重叠的。

磁盘盘片表示图:

是什么影响了数据库索引选型?

盘片被分别成一系列齐心环,圆心是盘片中心,每个齐心环叫做一个磁道,全部半径沟通的磁道构成一个柱面。磁道被沿半径线分别成一个个小的段,每个段叫做一个扇区,每个扇区是磁盘的最小存储单位。

磁盘的存取进程:

当必要从磁盘读取数据时,体系会将数据逻辑地点传给磁盘,磁盘的节制电路凭证寻址逻辑将逻辑地点翻译成物理地点,即确定要读的数据在哪个磁道,哪个扇区。

为了读取这个扇区的数据,必要将磁头放到这个扇区上方,为了实现这一点:

  1. 起首必需找到柱面,即磁头必要移动瞄准响应磁道,这个进程叫做寻道,所淹灭时刻叫做寻道时刻
  2. 然后方针扇区旋转到磁头下,即磁回旋转将方针扇区旋转到磁头下。这个进程淹灭的时刻叫做旋转时刻

以是一次访盘哀求(读/写)完成进程由三个举措构成:

  1. 寻道(时刻):磁头移动定位到指定磁道
  2. 旋转耽误(时刻):守候指定扇区从磁头下旋转颠末
  3. 数据传输(时刻):数据在磁盘与内存之间的现实传输

局部性道理与磁盘预读

因为存储介质的特征,磁盘自己存取就比主存慢许多,再加上机器行为淹灭,磁盘的存取速率每每是主存的几百万分之一,因此为了进步服从,要只管镌汰磁盘I/O。为了到达这个目标,磁盘每每不是严酷按需读取,而是每次城市预读,纵然只必要一个字节,磁盘也会从这个位置开始,次序向后读取必然长度的数据放入内存。这样做的理论依据是计较机科学中闻名的局部性道理:

局部性道理: CPU会见存储器时,无论是存取指令照旧存取数据,所会见的存储单位都趋于聚积在一个较小的持续地区中。

时刻局部性(Temporal Locality):假如一个信息项正在被会见,那么在近期它很也许还会被再次会见。

空间局部性(Spatial Locality):在最近的未来将用到的信息很也许与此刻正在行使的信息在空间地点上是邻近的。

因为磁盘次序读取的服从很高(不必要寻道时刻,只需很少的旋转时刻),因此对付具有局部性的措施来说,预读可以进步I/O服从。

预读的长度一样平常为页(page)的整倍数。页是计较机打点存储器的逻辑块,硬件及操纵体系每每将主存和磁盘存储区支解为持续的巨细相称的块,每个存储块称为一页(在很多操纵体系中,页的巨细凡是为4k),主存和磁盘以页为单元互换数据。当措施要读取的数据不在主存中时,会触发一个缺页非常,此时体系会向磁盘发出读盘信号,磁盘会找到数据的起始位置并向后持续读取一页或几页载入内存中,然后非常返回,措施继承运行。

数据库为什么选用B-/+Tree索引

之条件到过,SQL优化的一个重要原则是镌汰磁盘I/O次数,磁盘I/O次数也是评价索引布局的是非的指标之一。

B-Tree说明:

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读