您的位置:首页 > 大数据

国科大大数据复习笔记 陈世敏 关系型数据管理系统(2)RBDMS系统架构 数据的存储与访问 B+Trees 查询索引index

2018-06-07 22:26 579 查看

国科大大数据复习笔记 陈世敏 关系型数据管理系统(2)

一:RBDMS系统架构

SQL Parse:

SQL 语句的程序解析好的内部表达
(例如:parsing tree)
语法解析,语法检查,表名、列名、类型检查 

Query Optimizer :

SQL内部表达Query Plan (执行方案)
产生可行的query plan
估计query plan的运行时间和空间代价
在多个可行的query plans中选择最佳的query plan 

Data storage and indexing
如何在硬盘上存储数据
如何高效地访问硬盘上的数据 

• Buffer pool:

 在内存中缓存硬盘的数据 

Execution Engine :

• query planSQL语句的结果
根据query plan,完成相应的运算和操作
数据访问
关系型运算的实现
Transaction management:事务管理
目标是实现ACID
进行logging写日志,locking加锁
保证并行transactions事务的正确性
数据存储在外存(硬盘 )

二:数据的存储与访问

• 数据存储与访问
数据表(Table)
索引(Index)
缓冲池(Buffer pool)


数据库 vs. 文件系统(数据存储角度比较)
• 文件系统
存储文件(file)
通用的,存储任何数据
和程序
文件是无结构的,是一
串字节组成的
操作系统内核中实现
提供基本的编程接口
– Open, close, read, write
13
• 数据库
存储数据表(table)
专用的,针对关系型数
据进行存储
数据表由记录组成,每
个记录由多个属性组成
用户态程序中实现
提供SQL接口
• 共同点
数据存储在外存(硬盘)
根据硬盘特征,数据分成定长的数据块 

数据在硬盘上的存储
一个page 一个一维的地址空间 

一个page  可以设置为1~多个文件系统的 page,例如,4KB, 8KB, 16KB, … 

数据的访问:



Hash based index:

在硬盘上怎么存?
bucket = page
当chain上平均bucket数太多时,需要增大size,重新hashing
(存在hash table design可以降低re-hashing的代价)
一个bucket对应一个page

B+Trees:

B+Trees存储


 B+Trees检索

进行二分查找

Search 然后在节点中插入
叶节点未满,插入叶节点
叶节点满了,node split(节点分裂)

Range Scan
找到起始叶结点,包括范围起始值
沿着叶的链接读下一个叶结点
直至遇到范围终止值

比较顺序访问与二级索引访问
• 顺序访问
需要处理每一个记录
顺序读每一个page
50
• 二级索引访问
有选择地处理记录
随机读相关的page
到底应该采用哪种方式呢?
• 由最终选中了多大比例的记录决定:selectivity
• 可以根据预测的selectivity、硬盘顺序读和随机读
的性能,估算两种方式的执行时间
• 选择时间小的方案
• 这就是query optimizer的一个任务


Buffer Pool
数据库数据放在硬盘上,buffer pool在内存里,减少I/O,提高性能




阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐