数据的存储结构和特征.pptxVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据的存储结构和特征

1 数据的存储结构和特征 概述 堆表 索引组织表 聚簇表 2 1. 概述 在关系数据库中有很多种数据存储方式,有些DBMS全部支持,有些则只支持其中的一部分。数据库的存储方式至关重要,它对数据的修改和查询都有直接的影响。 存储方式可分为两种:随机存储方式和固定存储方式。前者存储效率必然要高于后者。但如我们的人生一样,得到多少就意味着要失去多少。 3 1. 概述 随机存储方式在写入数据时可以轻而易举的进行存储,在查询时候则要付出更高的代价; 固定存储方式在写入数据时花费了时间和精力,则在查询上获得性能的提升。 读 写 永远是数据库设计的矛盾 4 1. 概述 选择哪一种存储策略? 取决于业务需求【希望更快的写入还是更快的查询】; 取决于数据量的大小【和内排序算法类似,对于只有极少数的数据量可能不需要快速查找,使用冒泡法或者简单查找更为有效】; 取决于读写比例. 建议:将经常需要一起读取的数据集中存储在一起,则不论处理范围【不论是全表数据和某个特定范围数据】有多大都能获得更好的读取效率。 原因: 数据库读取的单位是Block,不是Row,如果一起读取的数据集中存放,则需要读取的Block数目将减少【数据库查询性能直接有IO次数决定】; 磁盘的顺序读和随机读相比节省了寻道时间和旋转延时. 数据的存储方式直接影响数据的读取效率,不可等闲视之 5 1. 概述 关键点 存储方式只能选择一种; 存储方式不可轻易改变。 我们能做的 具体情况具体分析,选择一种最理想的存储方式以提高数据的存储效率。 三种数据的存储方式 堆表 索引组织表 簇表 6 数据的存储结构和特征 概述 堆表 索引组织表 聚簇表 7 2. 堆表 堆表采用索引和表数据分开存储的策略。 键和数据是否应该存放在一起? 学号 姓名 语文 数学 英语 2010210888 孟显耀 61 62 63 2010210889 张三 96 45 78 新华字典 通过发音,部首,笔画等多个维度的索引查询汉字。 学生成绩单 以学号为键,查找学生的成绩信息 结论:索引和数据分开存放的策略会导致两次查找操作;但确使得数据的存储不受索引的影响 表和索引相互分离:各自作为不同的对象存储是关系型数据库中最常见的数据存储方式。在海量数据管理方面是最佳方式。 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

您可能关注的文档

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档