DBMS的数据操作算法、查询优化处理方法和事务处理算法与数据库的物理存储结构密切相关。

mysql数据库的物理空间 数据库物理储存_数据库

mysql数据库的物理空间 数据库物理储存_主存_02

 数据库存储设备:

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_03

 

mysql数据库的物理空间 数据库物理储存_主存_04

 flash memory 闪存

magnetic disk 磁盘存储器

optical disk 光盘

magnetic tapes 磁带

 这里的联机存储和脱机存储?

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_05

磁盘存储器:磁盘组、磁道、扇区、柱面。

 

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_06

随机存取;所谓“随机存取”,指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。相对的,读取或写入顺序访问(SequentialAccess)存储设备中的信息时,其所需要的时间与位置就会有关系(如磁带)。

以扇区为单位进行读写;主存与磁盘交换信息必须以磁盘块为单位,磁盘块由一个或多个扇区组成。

磁盘块地址由:柱面号;面号(一个盘片=两个盘面);扇区号 组成

进行磁盘读写时,主存中必须有与磁盘块容量相匹配的缓冲区。

mysql数据库的物理空间 数据库物理储存_数据库_07

磁盘读写代价由:寻找时间、旋转延迟、传输时间组成。其中大部分时间花在寻找和延迟上。注意旋转延迟指定的是磁盘块

mysql数据库的物理空间 数据库物理储存_数据库_08

 

mysql数据库的物理空间 数据库物理储存_取整_09

 

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_10

mysql数据库的物理空间 数据库物理储存_数据库_11

 最小化磁盘读写次数

 

mysql数据库的物理空间 数据库物理储存_子节点_12

mysql数据库的物理空间 数据库物理储存_取整_13

mysql数据库的物理空间 数据库物理储存_数据库_14

 LRU(最近最少使用)least recently used

FIFO(先进先出)

立即丢弃策略

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_15

RAID redundant 多余的

mysql数据库的物理空间 数据库物理储存_子节点_16

 

mysql数据库的物理空间 数据库物理储存_子节点_17

 

mysql数据库的物理空间 数据库物理储存_主存_18

 

mysql数据库的物理空间 数据库物理储存_主存_19

 使用奇偶校验的方法恢复数据。

mysql数据库的物理空间 数据库物理储存_数据库_20

 同时还可以起到“并行读写”的方法:

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_21

mysql数据库的物理空间 数据库物理储存_子节点_22

 磁盘文件:

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_23

 

mysql数据库的物理空间 数据库物理储存_数据库_24

 

mysql数据库的物理空间 数据库物理储存_主存_25

 

mysql数据库的物理空间 数据库物理储存_主存_26

 数据项——文件记录(数据项集合) 对应于一个关系元组

mysql数据库的物理空间 数据库物理储存_主存_27

 

mysql数据库的物理空间 数据库物理储存_子节点_28

mysql数据库的物理空间 数据库物理储存_主存_29

 

mysql数据库的物理空间 数据库物理储存_主存_30

 

mysql数据库的物理空间 数据库物理储存_子节点_31

 

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_32

 

mysql数据库的物理空间 数据库物理储存_数据库_33

 

mysql数据库的物理空间 数据库物理储存_数据库_34

 

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_35

 第三种方法只适用于定长,不然不知道最后一个记录的实力会不会太大了装不下

mysql数据库的物理空间 数据库物理储存_取整_36

 

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_37

 

mysql数据库的物理空间 数据库物理储存_取整_38

 

mysql数据库的物理空间 数据库物理储存_主存_39

 

mysql数据库的物理空间 数据库物理储存_取整_40

mysql数据库的物理空间 数据库物理储存_数据库_41

mysql数据库的物理空间 数据库物理储存_取整_36

 文件存储方法:

mysql数据库的物理空间 数据库物理储存_主存_43

文件难扩充,因为要求连续存储空间。

 

mysql数据库的物理空间 数据库物理储存_数据库_44

参照数组和链表。

mysql数据库的物理空间 数据库物理储存_数据库_45

 query处理高效

Hash文件:

mysql数据库的物理空间 数据库物理储存_子节点_46

 

mysql数据库的物理空间 数据库物理储存_主存_47

简单HASN方法: 

mysql数据库的物理空间 数据库物理储存_子节点_48

解决桶溢出问题: 多重Hash方法、链接法

mysql数据库的物理空间 数据库物理储存_取整_49

 h:散列键->i(桶编号) 可以当“主键”理解~

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_50

 

mysql数据库的物理空间 数据库物理储存_子节点_51

 

mysql数据库的物理空间 数据库物理储存_子节点_52

 动态HASH方法:

mysql数据库的物理空间 数据库物理储存_取整_53

 

mysql数据库的物理空间 数据库物理储存_数据库_54

 

mysql数据库的物理空间 数据库物理储存_数据库_55

 可拓展HASH方法:

mysql数据库的物理空间 数据库物理储存_主存_56

 

mysql数据库的物理空间 数据库物理储存_取整_57

 

mysql数据库的物理空间 数据库物理储存_子节点_58

 

mysql数据库的物理空间 数据库物理储存_主存_59

mysql数据库的物理空间 数据库物理储存_子节点_60

 

mysql数据库的物理空间 数据库物理储存_取整_61

 

mysql数据库的物理空间 数据库物理储存_数据库_62

mysql数据库的物理空间 数据库物理储存_子节点_63

 

mysql数据库的物理空间 数据库物理储存_数据库_64

索引文件:

 

mysql数据库的物理空间 数据库物理储存_子节点_65

mysql数据库的物理空间 数据库物理储存_主存_66

 按结构分类:稀疏索引、稠密索引、多级索引。

mysql数据库的物理空间 数据库物理储存_子节点_67

mysql数据库的物理空间 数据库物理储存_子节点_68

 

mysql数据库的物理空间 数据库物理储存_子节点_69

 

mysql数据库的物理空间 数据库物理储存_取整_70

 

mysql数据库的物理空间 数据库物理储存_子节点_71

 按索引域特点分类索引:主索引、聚集索引、辅助索引

mysql数据库的物理空间 数据库物理储存_子节点_72

 主索引只保留磁盘块块首指针,为稀疏索引。

 

mysql数据库的物理空间 数据库物理储存_取整_73

 

mysql数据库的物理空间 数据库物理储存_数据库_74

mysql数据库的物理空间 数据库物理储存_主存_75

 第二个要加1,因为要从

 

mysql数据库的物理空间 数据库物理储存_取整_76

 

mysql数据库的物理空间 数据库物理储存_主存_77

 

mysql数据库的物理空间 数据库物理储存_主存_78

 

mysql数据库的物理空间 数据库物理储存_子节点_79

 B+-树文件索引:

mysql数据库的物理空间 数据库物理储存_取整_80

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_81

 

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_82

 不能保持树的平衡,检索较高级别叶节点性能低下;

删除操作可能使树的某些节点接近于空,浪费磁盘存储空间。

定义. 秩为D的B+树定义如下:

mysql数据库的物理空间 数据库物理储存_数据库_83

 

mysql数据库的物理空间 数据库物理储存_取整_84

 叶子节点中最多存D-1条记录和一个数据指针Pnext。D为秩。

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_85

注意使用的是D/2向上取整哦 

 

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_86

 

mysql数据库的物理空间 数据库物理储存_主存_87

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_88

 

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_89

 整个树都加深了一级。

 

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_90

D/2向下取整,内节点下溢处理使用D/2向上取整。

mysql数据库的物理空间 数据库物理储存_取整_91

 

mysql数据库的物理空间 数据库物理储存_主存_92

 最后那个145已经没了。只有一个孩子节点,要它没用。

mysql数据库的物理空间 数据库物理储存_子节点_93

只有叶子上的节点索引了数据文件。

代价分析:

B+树的查找效率怎么样呢?

这里,给定叶子节点的数量,我们希望树尽量的高,所以根节点用最少的儿子数量让树先增长一层,然后再算下面的高度。

mysql数据库的物理空间 数据库物理储存_取整_94

 在D足够大时不考虑取整符号。可以算出来h是θ(logD(N))的。

 多维索引:

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_95

mysql数据库的物理空间 数据库物理储存_子节点_96

(留存一下老师上课的笔记) 

mysql数据库的物理空间 数据库物理储存_子节点_97

 

mysql数据库的物理空间 数据库物理储存_子节点_98

 

mysql数据库的物理空间 数据库物理储存_取整_99

 

mysql数据库的物理空间 数据库物理储存_mysql数据库的物理空间_100

后面他还拓展的讲了一下LSM TreeBulkLoading。(拓展了解)