




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,数据的存储结构和特征,概述 堆表 索引组织表 聚簇表,2,1. 概述,在关系数据库中有很多种数据存储方式,有些DBMS全部支持,有些则只支持其中的一部分。数据库的存储方式至关重要,它对数据的修改和查询都有直接的影响。 存储方式可分为两种:随机存储方式和固定存储方式。前者存储效率必然要高于后者。但如我们的人生一样,得到多少就意味着要失去多少。,3,1. 概述,随机存储方式在写入数据时可以轻而易举的进行存储,在查询时候则要付出更高的代价; 固定存储方式在写入数据时花费了时间和精力,则在查询上获得性能的提升。,读,写,永远是数据库设计的矛盾,4,1. 概述,选择哪一种存储策略?,取决于业务需求【希望更快的写入还是更快的查询】; 取决于数据量的大小【和内排序算法类似,对于只有极少数的数据量可能不需要快速查找,使用冒泡法或者简单查找更为有效】; 取决于读写比例.,建议:将经常需要一起读取的数据集中存储在一起,则不论处理范围【不论是全表数据和某个特定范围数据】有多大都能获得更好的读取效率。 原因: 数据库读取的单位是Block,不是Row,如果一起读取的数据集中存放,则需要读取的Block数目将减少【数据库查询性能直接有IO次数决定】; 磁盘的顺序读和随机读相比节省了寻道时间和旋转延时.,数据的存储方式直接影响数据的读取效率,不可等闲视之,5,1. 概述,关键点 存储方式只能选择一种; 存储方式不可轻易改变。,我们能做的 具体情况具体分析,选择一种最理想的存储方式以提高数据的存储效率。,三种数据的存储方式 堆表 索引组织表 簇表,6,数据的存储结构和特征,概述 堆表 索引组织表 聚簇表,7,2. 堆表,堆表采用索引和表数据分开存储的策略。 键和数据是否应该存放在一起?,新华字典 通过发音,部首,笔画等多个维度的索引查询汉字。,学生成绩单 以学号为键,查找学生的成绩信息,结论:索引和数据分开存放的策略会导致两次查找操作;但确使得数据的存储不受索引的影响,表和索引相互分离:各自作为不同的对象存储是关系型数据库中最常见的数据存储方式。在海量数据管理方面是最佳方式。,8,2. 堆表 堆表的结构,数据的存储方式与数据值没有明显关联,只是按照先后顺序无条件的插入到数据块中。 PCTFREE:用来为一个块保留的空间百分比,以防止在今后的更新操作中增加一列或者多列值的长度。,PCTUSED:一个块的使用水位的百分比,这个水位将使该块返回到可用列表中去等待更多的插入操作。 预留空间是为UPDATE使用,以尽量减小行连接和行迁移所带来的性能损失。,9,2. 堆表 堆表的查询,10,2. 堆表 堆表的查询,ROWID: 对象号 + 数据文件号+ 数据块号 + Slot号,11,2. 堆表 堆表的查询,行迁移 举个例子,当我们要搬家的时候,为了能够让人依然能够找到我们,我们会把新地址告诉给以前的物业人员。Oracle 采用同样的原理,将新行的地址存储在移动之前的旧地址中。带来的性能损失:需要读取两个数据块! 行连接 当某个行所需要的存储空间大小超过一个数据块的空间大小,则无论如何也无法将其一个整行存储在一个块中。此时必须把所需要的数据块连接在一起来存储这个较大的行。,行的大小是可变的,数据块的大小在建立 DB之后是不可变的,建库之前一定要 考虑到行的最大长度,12,2. 堆表 聚簇因子,堆表的最大特征是数据的存储独立性,即数据的存储与数据值没有任何关联地被存储在磁盘的任意位置上。 聚簇因子是指按照索引值进行了排序的索引行序和对应表中数据行序的相似程度。,13,如何提高聚簇因子? 提高聚簇因子最无力的措施就是采用堆表:采用随机存储方式; 定期对表执行重构可以达到提高聚簇因子的效果; 表重构代价较大,但是可以放在空闲时间进行,因此不会给系统造成很大负担; 对表的重构操作影响因素最大的是并行处理.,2. 堆表 聚簇因子,14,数据的存储结构和特征,概述 堆表 索引组织表 聚簇表,15,3.索引组织表,索引组织表是把索引和一般数据列全部存在相同位置上的表结构。如果读取了索引,则就没有必要读取表了。【二者是一次性读取】 如果大部分查询语句都要求对主键进行扫描,且主键的长度在整个行中所占的比例并不大,则就没有必要将索引和表分开存放。 在利用索引从堆表中读取数据时,读取代价会随着处理范围的变大而增加。这并不是因为索引扫描的原因,而是因为查找表时可能发生的大量随机读。最坏情况不过是为了读取一行记录而需要从磁盘上把一个新的数据块读入到内存中。,16,3.索引组织表 堆表和索引组织表的比较,P19 表1-1,堆表和索引组织表的比较,17,3.索引组织表 堆表和索引组织表的比较,索引组织表的最大优点并不是不经过索引而减少了一次逻辑读所形成的数字上的差异。在小量随机读中,索引组织表读取效率并不高;但在大范围的数据扫描中却可以获得非常高的读取效率。【顺序读的效率由于随机读】 如果仅仅读索引数据的话,索引组织表的读取效率要低于堆表。,18,3.索引组织表,目前索引组织表没有被广泛使用的原因 行的长度会溢出【利用Overflow Area】 物理ROWID不固定【逻辑ROWID】,索引组织表的适用场景 电子分类或者关键字查询表; 索引表 空间信息管理表 大部分使用主键查询的表 OLAP的维度表 记录长度相对较短,且插入操作不频繁的表。,19,数据的存储结构和特征,概述 堆表 索引组织表 聚簇表,20,4.聚簇表 概念,堆表在处理海量数据时,存在大量的随机读,使得读取代价增大; 索引组织表在特定的情况下不再需要随机读,但当存在多样化的读取类型时需要付出非常大的读取代价。 尽管我们可以运用多样化的索引策略提高读取效率,但这也只是在最终的绝对处理范围比较小的情况下才比较有效;在最终的绝对处理范围比较大的情况下,无论怎么灵活也无法避免大量的随机读。,问题,“聚簇”是海量数据处理最有价值的方案之一,21,4.聚簇表 聚簇表的概念,基本概念 聚簇就像表和索引一样是拥有自己独立存储空间的一种对象。 如表是索引的上级概念一样,聚簇是表的上级概念。 可以在聚簇中创建表,由于没有表的聚簇不能插入任何数据,所以没有表的聚簇是没有任何意义的。,使用聚簇的最终目的 在RBO模式下为特定数据的读取赋予更高的优先顺序,在CBO模式下减小大范围数据读取的代价。 提高聚簇因子【Clustering Factor】:聚簇因子是指我们要读取的数据有多大程度上被集中存储在一起。,聚簇以某个具体指定的列为基准,把拥有相同聚簇值的所有行都存储在相同位置上的物理存储方法。,22,4.聚簇表 单表聚簇,单表聚簇:指定的聚簇中只创建一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年旅游安全法规考试题及答案
- 2025年技术转移中心信息经理面试题及参考答案
- 2025年生物医药研发项目经理竞聘考试模拟试题集
- 灌溉操作规程培训课件
- 知识型员工培训设计课件
- 饱和态浮游生物群落-洞察及研究
- 知识付费教育培训课件
- 2025年高级经济师工商管理试题及答案
- 知识付费培训正规课件
- 知识产权进企业培训会课件
- 媒介融合传播概论课件
- 2025年总工会招聘考试工会知识模拟试卷及答案
- 2026年高考第一轮复习数学第01讲 导数的概念及其意义、导数的运算(复习课件)
- 基层管理员工管理办法
- 中国刑事警察学院2024研究生考试真题(附答案)
- 《研学旅行指导师实务》课件-第3章 研学旅行课程设计
- 甘肃省兰州市西北中学2024-2025学年高一下学期期末语文试题(含答案)
- 2024年四川省德昌县公开招聘城市协管员试题带答案详解
- 内务条令考试试题及答案
- 2025年石家庄市市属国有企业招聘笔试考试试题(含答案)
- 建设工程施工现场供用电安全规范2014
评论
0/150
提交评论