海量数据解决方案 知识总结

1.数据最终是以某种特定的物理形式存储在磁盘上的,这就意味着数据的读取效率必定随着数据存储形式不同而不同。由于我们要读取的数据可能存放在磁盘上的任意位置上,所以读取效率必定随着表结构和读取手段是否走索引 不同而不同。影响读取效率的因素不仅有数据物理结构的差异,而且还有执行计划的差异,通常执行计划的影响远远大于物理结构。 


2.数据的存储方式可以分为两种 
 随机存储方式  按照输入的顺序,数据被存储在磁盘的任意空位置上
 数据存效率高 ,但是 在读取数据时代价增加,固定存储方式 是指数据被存储在预算制定的磁盘位置上,数据存取效率低 读取数据块。


3.表和索引分离型 
  其实就是堆表。即用来存储数据的表和为了快速查找特定数据而使用的索引完全作为不同的对象来进行存储。   

4 堆表的结构

存储的数据块 block  会有参数值 PCTFREE 和 PCTUSED 
另外会有一个记录表Free List 来记录可以被重新使用的数据块号码
假如 block为空 则 一般 可用, 如果不为空 ,则需要考虑其未使用的空间比例是否大于预先设定的比例值,如果大于PCTFREE,则可可以被重新使用 则该block 被标记状态 可重用。


5 聚簇因子 Cluster Factor
按照索引列值进行了排序的索引行序和对应表中数据行序的相似程度。


堆表的最大特征就是数据的存储独立性,即数据的存储和数据值没有任何关联地被存储在磁盘的任意位置上。。 其实也就是 随机存储方式 ,数据所占用的位置分散在不同的数据块上。


在这种存储状态下,查询相同数据所执行的物理读取数量会随着查询数据的分散程度而不同 eg 同时 读取 10行数据,逻辑上读取的行数是一样的,可是 读取10行在不同数据块的数据与 读取在两块数据  在物理IO读取的数据块数却相差5倍。


在关系型数据库上,不论在什么情况下,每次最少都要读取一个数据块。尽管我们需要读取的是行,这样 如果我们读取的数据在同一块上,这样 我们接下来读取的数据会直接在内存中读取。如果内存命中了我们所要查询的数据行,则在很大程度上就能减少物理IO的数量。在一般情况下,在内存块上查询数据的速度比从磁盘上查询数据的速度快30倍左右。  即 数据的分散程度高,读取效率低。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值