浅谈海量数据库中的索引技术

来源 :考试周刊 | 被引量 : 0次 | 上传用户:coffeedoly
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  海量数据是新进出现的一个词,它用来形容数目巨大、空前浩瀚的数量。现代社会很多行业部门中都需要操作海量数据,如通讯部门需要操作通讯方面的数据,气象部门需要监测气象方面的数据,招考部门需要调用招考方面的数据,这些部门处理的数据量都非常大。包括各种文字、数字、时间、声音、图像、报表、超文本等各种类型的数据信息。伴随着海量数据的产生,存储这些数据的数据库——即海量数据库的概念应运而生。那么,如何实现快速地从这些超大容量的数据库中进行查询、分析、统计,以及提取数据后对数据进行分页已成为系统管理员和数据库管理员急需解决的难题。
  实现查询优化的关键任务是建立索引。索引是除表之外另一个重要的、由用户定义的存储在物理介质上的数据结构。当根据索引码的值搜索数据时,索引提供了对数据的快速访问。不过没有索引,数据库也能根据SELECT语句成功地查找到结果。但随着数据量和表变得越来越大,使用索引的好处就渐渐凸显出来。数据索引好比是一本书前面的目录,建立了索引之后就能加快数据库的查询速度。
  例如有以下的SQL语句:select * from table where id=215。
  如果没有建立索引,要查到这条记录,则必须找遍整个数据表,直到ID等于215的这一项被找到为止;建立了索引之后,直接在索引里面找215这一个数据项,就可以快速及精确得知这一项的位置。就如同在图书馆查找一本书,如果图书馆的书架上没有建立过索引目录,要找到编号为215这的书就相当费劲。但是书架上编过了索引和目录之后,要找到这本书应该是很容易的了。
  创建索引可以大大提高系统的性能。但是索引是不是越多越好呢?索引会占用数据空间,同时还会占用一定的物理空间。建立索引需要耗费时间;增加或删除数据的同时,都会导致索引改变。所以索引过多,也就没有真正的意义了,我们在处理数据时应该按需建立索引。
  索引可分为聚集索引和非聚集索引。
  聚集索引中的表数据按照索引的顺序来存储。对于聚集索引,叶子结点即存储了真实的数据行,不再有另外单独的数据页。非聚集索引中的表数据存储顺序与索引顺序无关。对于非聚集索引,叶结点包含索引字段值及指向数据页数据行的逻辑指针,该层紧邻数据页,其行数量与数据表行数据量一致。在一张表上只能创建一个聚集索引,因为真实数据的物理顺序只可能有一种。如果一张表没有聚集索引,表中的数据行没有特定的顺序,所有的新行将被添加到表的末尾位置。
  那么,索引真正的优点有哪些呢?可以总结为以下几点。
  (1)索引可以避免遍历整张数据表。多数查询可以仅通过扫描少量的索引页及数据页,而不需要查找历所有数据页。
  (2)对于非聚集索引,有些查询甚至可以不访问数据页。
  (3)聚集索引可以避免数据插入操作集中于表的最后一个数据页。
  (4)一些情况下,索引还可用于避免排序操作。
  1.聚集索引与插入操作
  最简单的情况下,插入操作根据索引找到对应的数据页,然后通过移动已有的记录为新的数据腾出空间,最后插入数据。如果数据页已满,则需要拆分数据页。页拆分是一种耗费资源的操作,一般数据库系统中会有相应的机制要尽量减少页拆分的次数,通常是通过为每页预留空间来实现。在该使用的数据段上分配新的数据页,如果数据段已满,则需要分配新段。调整索引指针,需要将相应的索引页读入内存并锁定。大约有一半的数据行被归入新的数据页中。如果表还有非聚集索引,则需要更新这些索引指向新的数据页。
  2.聚集索引与删除操作
  删除行将导致其下方的数据行向上移动以填充删除记录造成的空白。如果删除的行是该数据页中的最后一行,那么该数据页将被回收,相应的索引页中的记录将被删除。如果回收的数据页位于跟该表的其他数据页相同的段上,那么它可能在随后的时间内被利用。如果该数据页是该段的唯一一个数据页,则该段也被回收。对于数据的删除操作,可能导致索引页中仅有一条记录,这时,该记录可能会被移至邻近的索引页中,原索引页将被回收,即索引被合并。
  3.非聚集索引与插入操作
  如果一张表包含一个非聚集索引但没有聚集索引,则新的数据将被插入到最末一个数据页中,然后非聚集索引将被更新。如果也包含聚集索引,该聚集索引将被用于查找新行将要处于什么位置,随后聚集索引及非聚集索引将被更新。
  4.非聚集索引与删除操作
  如果在删除命令的Where子句中包含的列上,建有非聚集索引,那么该非聚集索引将被用于查找数据行的位置,数据删除之后,位于索引叶子上的对应记录也将被删除。如果该表上有其他非聚集索引,则它们叶子结点上的相应数据也要删除。如果删除的数据是该数所页中的唯一一条,则该页也被回收,同时需要更新各个索引树上的指针。由于没有自动的合并功能,如果应用程序中有频繁的随机删除操作,最后可能导致表包含多个数据页,但每个页中只有少量数据。
  可见在数据库中适当地建立索引,将大大缩短查询的时间,提高数据插入删除效率,在海量数据库中,对于索引的合理使用尤为重要。
其他文献
山东有线电视新闻频道是山东有线电视台新闻宣传的主渠道,每天24小时播出。其中《山东有线新闻》是山东有线电视新闻联播栏目。《今日视点》是一档每期10分钟的新闻评论栏目。
摘 要: 本院竞技健美操的发展在训练的系统性、长期性,难度动作的完成、动作的表现力,以及专项身体素质等方面存在问题。针对问题,作者提出了相应的对策。  关键词: 天水师范学院 竞技健美操 现状 建议    竞技健美操随着健美操运动的蓬勃开展迅速发展起来,它是一种更高层次的健美操运动,它比健身健美操更加激烈,更能体现健、力、美的特色。在当前竞技健美操在全国高校广泛开展的情况下
摘 要: 提高体育教学质量,教师要有较强的事业心责任感,能充分调动学生的学习积极性与兴趣,精心组织教学,安排合理的运动负荷。  关键词: 体育课 教学质量 提高方法    增强体质,促进学生心理全面发展,掌握“三基”,提高运动技术水平,对学生进行思想品德教育;贯彻健康第一、强身健体、陶冶情操、启迪智慧、发扬拼搏精神,这都是对体育的要求。体育教学是体育不可缺少的一部分。我们认为体育
H9N2亚型禽流感病毒(AIV)在包括我国在内的东南亚及世界许多国家分布广泛,中国大陆1994年首次公开报道从鸡群中分离到H9亚型AIV,随后便在一些地区形成小规模的流行,未波及全
摘 要: 在体育教学中培养学生的学习兴趣是一项重要任务。教师要钻研教材教法,课外和学生打成一片,让学生喜欢体育老师,喜欢体育课,这样学生的兴趣才会被充分地调动起来。  关键词: 体育教学 学习兴趣 教法得当 师生关系融洽    兴趣是学习的动力,也是影响学生学习自觉性和积极性的重要因素。我经过分析发现影响学生体育兴趣的主要因素有:性别年龄、社会环境、教师的教与学、运动项目、
目的:采用猕猴(恒河猴)为动物模型评价抗乙肝新药—美他卡韦(Metacavir)是否具有潜在的线粒体毒性及其严重程度,为临床安全用药提供参考依据。方法:(1)动物分组及剂量设计:27只
黄芩苷(baicalin)是从黄芩根部分离出来的主要活性成分之一,安胎作用显著。本试验以小鼠胚胎为研究对象,在 CZB培养基中添加不同浓度黄芩苷,以探讨黄芩苷是否可以提高体外培养小
摘 要: 针对中学体育教学存在着单纯满足学生兴趣,而忽视培养全面发展合格人才职能的倾向,只重视术科而忽视传播体育理论知识,体育理论教学时数不足、内容不切合学生实际等现状,进一步强调理论教学的重要性,并提出加强体育理论教学的措施,即增加教学时数、举办知识讲座、进行个别指导、提高教师理论素养及加强理论教材建设等。  关键词: 高中体育理论教学 重要性 措施    我国体育与健康课程标
摘 要: 本文分析了体育教学中学生的“逆反心理”产生的原因,以及教师对“逆反心理”的对策与方法,以使体育课堂教学更具有效性。  关键词: 高中体育教学 逆反心理 原因 应对措施    1.逆反心理定义及表现  关于逆反心理,《心理学大词典》的解释是:“逆反心理是客观环境与主体需要不相符合时产生的一种心理活动,即具有强烈的抵触情绪。”也就是说,逆反心理是指客体与主体需要不相符
新课程改革提倡学习方式的多样性,倡导“自主、合作、探究”的学习方式,这些学习方式都强调学生在学习过程中的体验与感悟。通过体验式学习,力图使学生在学习中获得知识与技能、过程与方法、情感态度与价值观等方面的全面发展,培养创新精神和实践能力,为培养学生的健全人格,实现学生有个性地全面发展奠定良好的基础。教师要不断更新教育理念,把握教育教学理论的发展动态与趋势,在新课程改革中不断反思,实现教学方式和学习方