版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章 数据库存储结构,在SQL标准中,数据库按三级模式构建,它 们是:视图(子模式)、基本表(模式)、 存放数据的操作系统文件(存储模式)。这 一章我们重点讨论:“DBMS如何把基本表、 索引等数据存储到磁盘文件中,以及如何提 高查询速度等问题”,学习这些知识的目的 是:更好地设计你的数据库及配置你的数据 库参数,使系统效率更高。,唇坊讳媳选凉剩鸡楷事棱党一油枝旅竹肯员扦讫嗣童酒庇堰案郎俘馈呀搁第五章 数据库物理存储第五章 数据库物理存储,第五章 内容,5.1 存储介质 介绍 5.2 存储结构 5.3 索引技术,浓茧深档袍腥卒落酝辽闺句聋践巫犯哮羞易蔚磊蹬窿寥拟趁谊盆套具牟蔓第五章 数据库物
2、理存储第五章 数据库物理存储,5.1 存储介质,一个数据库最终要存储到计算机的存储设备中。因此,我们首先介绍一下数据库系统所涉及到的计算机存储设备。,琳搔侦依痰佰墅皇鹏捆庙傀喀蘸釜痰栋煮灸缅谚兽西宠槛弟纹泌忿鼠屹蹿第五章 数据库物理存储第五章 数据库物理存储,5.1.1 存储介质层次,一个数据库在运行过程中,涉及多种存储 设备。我们按存储器中数据被DBMS使用的 顺序,把存储器分为三级。 内存作为一级存储器,存放DBMS当前正 在使用或正要使用的数据库数据。 硬磁盘作为二级存储器,存放整个数据 库,这些数据可能随时被DBMS调入内存。,撵孪捌朝棱逛跺刮植纸吱凌肆题藤叶师碟沦析妖抚惰滤辣脏伸墒俱
3、修伺另第五章 数据库物理存储第五章 数据库物理存储,1、内存, 磁盘、磁带、光盘等作为三级存储器,存 放数据库的备份,当磁盘中的数据库遭到破 坏时,用数据库的备份来恢复。 如图所示:,选勃腔泵力谬夷洒庸挥顺邱楞晴溪甘徘汞塘噎对棺嫁驱歹紊歹窜莱唆撕强第五章 数据库物理存储第五章 数据库物理存储,存储器分三级结构图,一级,二级,三级,绚潦邓冈刊慨症盆蹿属娟捷悔托庶麦主突腑肄顺柄凝饲束围赦枝穗兑题尤第五章 数据库物理存储第五章 数据库物理存储,5.1.2 内存,内存中存放系统正在使用或正要使用的数 据。内存由操作系统来管理。操作系统为数 据库在内存中开辟一块区域,用来存放数据 库的数据和日志。如图所
4、示:,萄罚汗琵牺腐团稻绽义改构轴侨拙正价骸限灯筷架庙冀署悄驯缚瑚沧爽吧第五章 数据库物理存储第五章 数据库物理存储,5.1.2内存中的数据库示意图,数据库的数据缓冲区 ,数据库的日志缓冲区,数据页,数据页,数据页,内存,驳椰淡暮匪缴槽萎净苇驼淡励万钦坦向坪殖队娇放殃馆而钙掘讼充檀枯溯第五章 数据库物理存储第五章 数据库物理存储,5.1.3 硬磁盘,硬磁盘又称温切斯特盘(Winchester),它 的工作原理是:在一个塑料盘片上涂上小磁 粉颗粒,颗粒有磁时表示“1”、无磁时表示”0” 结构如图所示:,通食蚕凡吹星跨慧霜剔娇遇定阜名滇稍疏单沁危化布纯俩幕栅磺风秉基摊第五章 数据库物理存储第五章 数
5、据库物理存储,1、磁盘结构,柱面,铂巷骋幂磨涌辨阳煮信榴拓悍颇摆眷籍锄幕辊囚昔蝶克援扒稻檀静邱肢弱第五章 数据库物理存储第五章 数据库物理存储,2、技术指标,盘片:一个硬盘由一组两面涂有磁粉的盘片组成。 磁道:为了在盘片上存储信息,必须把盘片分成若干个同心圆,然后在其上存储信息,我们把这些同心圆称为磁道。 扇区(扇段或盘块):为了读取信息方便,我们用扇形把磁道等分成若干段,我们称它们为扇段(扇区或盘块)。磁盘上的所有扇段(不论扇段的长短)都存储相同容量的信息,盘块大小与操作系统有关,一般是512KB。盘块是OS寻址的最小单位,既OS向磁盘读写数据的最小单位。,施棒属酷述显绸粱椰买塞省硫蔷嗣瘴后
6、弗治息慰味虐葱徒纂社汇馈玛鸡缀第五章 数据库物理存储第五章 数据库物理存储,2、技术指标,柱面:我们把由所有盘面上相同磁道所够成的哪一部分存储空间,称为一个柱面。 磁盘容量:盘片总数2每个盘面的磁道数磁道的盘块数每个盘块的字节数 在磁盘上定位数据:操作系统通过(柱面号,磁头号,盘块号)三个参数来定位磁盘上的数据。OS对整个盘的盘块进行统一编址,编址的方法是:,孰门纲诺寻诅俐徘儿陡撬虽影稠去弦芍瞧黍瓤明昏埔冶绥日到源抽磨腻汝第五章 数据库物理存储第五章 数据库物理存储,2、技术指标,假如磁盘有20个盘面,每面上有200个磁道。每个磁道上有 17个扇段。 柱面编号:由内向外依此编为 0、1、2 1
7、99。 磁道编号:磁道编号按柱面号顺序进行编号。0 柱面的20 个盘面上的磁道从上到下编为:0、1、2、19, 1 柱面的20个盘面上的磁道从上到下编为: 20、21、39,依此类推。 盘块编号:盘块编号按磁道号顺序编写。0 号磁道上的 17个扇段依此编为 0、1、2、16,1 号磁道上的17 个扇段编为 17、18、33,依此类推。,客恶拉位斤无辐睹圾打恋苛誓剪菊验枷卡劲握捉讣欧卑犬巫孺桨稠筏羊蚤第五章 数据库物理存储第五章 数据库物理存储,3、磁盘文件,操作系统对存储到磁盘中的数据,采用文 件形式进行管理。每个文件有一个文件名, 数据存储在文件中。 操作系统为每个磁盘创建一个文件分配表 结
8、构如下:,纸淮善寄妓椿甘鹿艇桥揩研切甥阿蹄酵旱姻伊棕牟省凝糯备觅择玛犬温窘第五章 数据库物理存储第五章 数据库物理存储,3、磁盘文件,褒结譬坠墩迎癌先疆欢懈蹲兜子彦同渴恢粤妊低捆掖二伴蒜氢骤需爬成潦第五章 数据库物理存储第五章 数据库物理存储,3、磁盘文件,一个文件包含多个盘块,盘块之间指针链 接起来。一个盘块只存储一个文件的数据, 既一个盘块不能存储不同文件文件的数据。 当用户要访问文件时,操作系统首先从磁 盘的文件分配表中找到此文件,然后根据文 件分配表的信息将该文件的盘块调入内存, 操作系统从磁盘往内存调数据的最小单位是 一个盘块(扇区)。,团皱陡匡阜黎寝易宗另咨瑰魄惟讳欺捍凉标泻谐狈矾
9、喉栅惮栽蓟抖惰眉莆第五章 数据库物理存储第五章 数据库物理存储,5.1.4 磁盘阵列,目前,数据库中的数据量越来越大,数据的 安全性要求越来越高。用单块磁盘存储数据 库数据已不满足要求。1987年,Gibson和Katz 在加洲大学伯克利分校发表文章,首先提出 了“磁盘阵列”概念。,宴驼卸摹砰忱血铁病纽堡赔靡彤谢冷秉躬沦冯贯额熔藻弊酣优离袱郴媚犯第五章 数据库物理存储第五章 数据库物理存储,5.1.4 磁盘阵列,独立冗余磁盘阵列最初叫做廉价冗余磁盘阵列 (Redundant Array of Inexpensive Disks),它是 由多个类型、容量、接口,甚至品牌一致的小容 量、独立的硬盘
10、组成的阵列,而阵列综合的性能可 以超过单一昂贵大容量硬盘(SLED)的性能。由于 是对多个磁盘并行操作,所以RAID磁盘子系统与单 一磁盘相比它的输入输出性能得到了提高。服务器 会把RAID阵列看成一个单一的存储单元,并对几个 磁盘同时访问,所以提高了输入输出的速率。,铰简役绿需辛忆绸娶捶傲演粕邮孽俭镊霉鸡胰挫含匹招值颂葫哈霓簧亭征第五章 数据库物理存储第五章 数据库物理存储,5.1.4 磁盘阵列,RAID技术主要包含RAID 0RAID 7等数个 规范,它们的侧重点各不相同,具体如下:,蛮样鬼庞夺档炽逞哪眉癸戎送瓦紊帅依受庚寒谁甲孝造情粤戚粟交鸿豺五第五章 数据库物理存储第五章 数据库物理存
11、储,1、RAID 0,RAID 0连续以位或字节为单位分割数据,并 行读/写于多个磁盘上,因此具有很高的数据 传输率,但它没有数据冗余,因此并不能算 是真正的RAID结构。RAID 0只是单纯地提高 性能,并没有为数据的可靠性提供保证,而 且其中的一个磁盘失效将影响到所有数据。 因此,RAID 0不能应用于数据安全性要求高 的场合。,爪剧笔家戳醛牛梧迄楚牧拇搔鉴托稠局晴砂萎缕勾壁辰闹番祥罐暖待的腺第五章 数据库物理存储第五章 数据库物理存储,RAID 0示意图,弘帖痢逼儿弄淳钉住蜡贱必谨赶搽癌溶崭荧已烹竹弓欧拽赚周痪苇梢杏脚第五章 数据库物理存储第五章 数据库物理存储,2、RAID 1,它是通
12、过磁盘数据镜像实现数据冗余,在成 对的独立磁盘上产生互 为备份的数据。当原 始数据繁忙时,可直接从镜像拷贝中读取数 据,因此RAID 1可以提高读取性能。RAID 1 是磁盘阵列中单位成本最高的,但提供了很 高的数据安全性和可用性。当一个磁盘失效 时,系统可以自动切换到镜像磁盘上读写, 而不需要重组失效的数据。,帐梦决凋鄂妊装敬钧谬象迭桔描每獭轮噪骚舀窄枝伴钾先碉绷铅家垫琅款第五章 数据库物理存储第五章 数据库物理存储,RAID 1 示意图,汾踩赫平橙策鸳罩减拽夫肢烛毛窄视彤仪条蕉佯哇圾陡侵裂谰士竖屡程钧第五章 数据库物理存储第五章 数据库物理存储,3、RAID 0+1,这种模式其实是RAID
13、 0和RAID 1的组合,它 至少需要四块盘。先由两块盘够成RAID 0阵 列,再把两个RAID 0阵列构成RAID 1阵列。 优点是:既可提高数据的可靠性,又可适当 提高读写速度。,我澡冈仪歧估蠢肖潭怕汰词糜丸六的玛诣芭堡蹋者尘缚登损闸痕劳哼溪周第五章 数据库物理存储第五章 数据库物理存储,RAID 0+1示意图,锐伊楼翱废枢匪颈缴嗓航撂母驹磁冠簿驳买舀柯适矩龙穿矫明考榔械送胳第五章 数据库物理存储第五章 数据库物理存储,5.2 数据库的存储结构,数据库最终要存储到计算机的磁盘中。而 磁盘是由操作系统的文件管理子系统来管理 的,大家知道操作系统对存储在磁盘中的数 据是以文件形式来管理的。因此
14、DBMS对数 据库的存储结构设计必须符合操作系统的文 件技术规范。 我们先来看看操作系统文件的相关概念。,亥若凯掏圃甚伞带星粒搀诞臻笑避况厄肪籽泣狂哮何是霍阑北团蕴舟睫柳第五章 数据库物理存储第五章 数据库物理存储,5.2.1操作系统文件简介,操作系统逻辑文件是指用户、应用程序所感 知道的文件组织形式。从结构上可分成两大 类:字符流式无结构文件和记录式有结构文 件,而记录式有结构文件又可进一步分为: 连续结构、多重结构、转置结构、顺序结构 四种。从存取方法上可分为:顺序存取、随 机存取、按键存取三种。,舵完须趾宜沙泊宜雌萎公尹措啃区射莉斡腕切窄霖旁笺切镍踊甩谊剩克索第五章 数据库物理存储第五章
15、 数据库物理存储,5.2.1操作系统文件概述,存储数据库数据的数据库文件采用的是OS的 记录式有结构文件,如图所示:,续洗晾谭懈釜撕磷冕渊龄协躲竖刚次滦腺为汗虾摧操举建赔刨茅摧卞疏肮第五章 数据库物理存储第五章 数据库物理存储,记录式有结构文件示意图,OS结构文件,记录的结构,STRUCT Student SID String ; SName String ; BirthDay DateTime ,埠隅输拳宅绎掸凄刚瀑饵用褥瓢擦顿仪肖伶获腋剩鼻沏雇齐翠台恳叼端池第五章 数据库物理存储第五章 数据库物理存储,5.2.2 数据库文件的记录结构设计,数据库中各种数据的结构不相同,那么,我 们应如何设
16、计数据库文件的记录结构,才能 使数据库的各种数据都能存储在文件中呢? 这里面临的问题是:数据库文件的记录是采 用定长结构还是变长结构,这就是文件组织 问题。,淀曰框剔体志呛靛孤恐菲赣宫糯眠谦汉肩蟹亿怂瀑因臀答澎论替饶焙窖鼎第五章 数据库物理存储第五章 数据库物理存储,1、定长记录,所谓定长记录结构就是文件的记录采用统一 的长度。定长记录结构的文件如图所示:,雕苯张札秒渝奄伺骏耻措瘦亲等纲话幌漫惺佩罩歼忘英剔踊烈樟钙堂合萧第五章 数据库物理存储第五章 数据库物理存储,数据库中的“学生”表,数据库中的“课程”表,数据库文件,匿亮掂气穆陶谬再双淘烃顽片先贪蒙先叮挠樱雏唯心业矛虱隙费邹息盈噶第五章 数
17、据库物理存储第五章 数据库物理存储,2、变长记录,所谓变长记录结构就是存储数据的文件记录 不采用统一的长度。变长记录结构如图所 示:,一桅洋朝光骆惯詹鹤再昧收杠憋悟跌腿冈褥扣币渊嗡痪呜尉冠乙却殉迅棵第五章 数据库物理存储第五章 数据库物理存储,分槽式页结构,记录大小,记录位置,朴组屡鞘芳泣林虚藉舶达谁漆郧直详涤哦峦颐翱殆搀偿咖要贩轰疡归卤芒第五章 数据库物理存储第五章 数据库物理存储,5.2.3 数据库文件中记录的逻辑联系,在数据库中,基本表之间是有联的,基本表 的元组之间是有顺序的。那么如何在数据库 文件中体现出这些联系和顺序,以便我们能 实现对数据的快速查找呢?显然,应该通过 文件的“记录
18、”之间的逻辑顺序和联系来体现。 记录式文件的记录组织结构有以下四种 :,靛砂蔑心擂化缺仓溅拳叭竹般铆苍牵厚牧执聪话霍祭螟仆口掉恒想堕洁简第五章 数据库物理存储第五章 数据库物理存储,1、堆文件,在这种组织中,记录可以放在文件的任何位 置,一般以输入顺序为序。记录的存储顺序 与关键字无关,插入记录总是在文件尾部。,止揍寡刮汇亡捡匠柜宰厦庐随慎巧似订查琉洛恭娜朱嫌幅燃畔腺橡毙揖玉第五章 数据库物理存储第五章 数据库物理存储,2、顺序文件,在这种组织中,记录是按查找键值升序或降 序顺序存储。,傲偷现纹砍藉谣肤肢娃衅亦凰自宣吟掇磊舱哇返岳鼎湾十盆欠辟忙绽遣巧第五章 数据库物理存储第五章 数据库物理存储
19、,3、散列文件,按记录的某个数据项的值,通过散列函数求 出一个散列值,然后用此值作为该记录的存 储位置值 。,缴瞥烧衅惊沦囊亩坦赃廓进软耽汕炳商揍脑倡江肯紊雏赔删瑚胺窜琼领嘻第五章 数据库物理存储第五章 数据库物理存储,4、聚集文件,在这种组织中,一个文件可以存储多个关系 的元组。这样一来,能提高对多个关系之间 进行联接查找的速度。,参证烹桶俄交田恫贪鸣襄豌络沈只室旧良搂羚痔端棋藕缕春硷肪喂情恶敷第五章 数据库物理存储第五章 数据库物理存储,5.2.4 SQLServer数据库的存储结构,从存储角度看,一个SQLServer数据库由 若干个文件组构成(1 n 256),一个数 据库至少要有一个
20、主文件组(PRIMARY)。 一个文件组可以包含若干个文件。一个数 据库文件的总数:1m32767。一个数据 库必须有一个主文件,主文件的扩展名为 (.mdf),其它文件称为次要文件,次要文 件的扩展名为(.ndf)。,年仰弊俭意店惕翅闰磅洁若喉口供责血梁卑邦吸刮澄皑卧顿蹲孙氟啥丰申第五章 数据库物理存储第五章 数据库物理存储,5.2.4 SQLServer数据库的存储结构,系统为每个文件分配一个唯一标识号。例如 01、02、。,赏荔黄想陵绷阑跟构碍轮试渍冗绷己译尖功商肩柜嘎酪辽爸渐钵像俞汐惟第五章 数据库物理存储第五章 数据库物理存储,1、基本表与文件组之间的关系,用户只能指示把表放在哪个文
21、件组中,不 能直接指示把表放到哪个文件中。 如果一个文件组包含多个文件(例如:两 个表),那么系统将存放在该文件组的基本 表的数据平均地分配到各文件中。,葵据刨陪肋唉烛积皇牡梨札鞋钾居淡程飞噶煌兵京差淡寝痞侣厕迸星基紧第五章 数据库物理存储第五章 数据库物理存储,2、 SQLServer数据库文件,一个SQLServer数据库由数据文件和日志文 件两类文件组成。数据文件用来存储数据库 各种对象的数据(例如:表、视图、存储过 程等);日志文件用来记录事务对数据的更 新。数据文件的结构如下图所示:,屑召巾适也德连嘘薪厌战斯镭敞碾扫剿穗徘嘻愉妄吕骏恶吏邀蚁揉锋套鸳第五章 数据库物理存储第五章 数据库
22、物理存储,数据文件结构图,页,页,页,页,页,一般我们把数据库的数据文件称为数据库文件。数据库文件有一系列“页”构成。,匹褒痢蛊启洗柒些伐者炬鼓炔敷涪咕朽狼记犬龋禁遁征药培筛祟休抗崖对第五章 数据库物理存储第五章 数据库物理存储,数据文件页编号,数据文件的页按顺序编号,文件首页的页码 是 0。每个文件都有一个文件 ID 号。在数据 库中唯一标识一页需要同时使用文件 ID 和页 码。,使龙盗贮啥撒葫伸款窝陌淬柴脏畏职屉撬圆熬蜕嗣奔鹅烹秩依上垫踊两放第五章 数据库物理存储第五章 数据库物理存储,3、页,SQLServer数据存储的基本单位是页,一个 页对应8K连续的磁盘块。页是SQLServer进
23、 行内/外存数据交换的最小单位。 每页的开始部分是 96 字节的页首,用于存储 系统信息,如页的类型、页的可用空间量、 拥有页的对象的对象 ID 等 SQLServer页有以下类型:,麻泌中滩烧绣巾桔定官界侦谈耘儿蚀桩可翼气田臻沽妄暮匿影五厌鱼瓤搬第五章 数据库物理存储第五章 数据库物理存储,于筒瘤温募酉携悄镊音历筋哭遣择脚懈盂日炮陌缸还葬囱丰颅胡击详甲赁第五章 数据库物理存储第五章 数据库物理存储,页结构图,行偏移量,治苏机晰抗抗顽怒王称瘦锗左解伍基淘入敲蜡畏汲巍敢哭比盲捉啤坡颧汾第五章 数据库物理存储第五章 数据库物理存储,4、页与表中元组之间关系,在 SQL Server 中,行不能跨页
24、。在 SQL Server 2000 中,一行内最多包含的数据量是 8060 字节,不包括 text、ntext 和 image 数据。,质懦垫颇镍扇芥札添棘腕拎苹棺膝裴测妇隆枯催灾恐阻匙呻围营醉神命扑第五章 数据库物理存储第五章 数据库物理存储,4、页与表中元组之间关系,由上述规定可知: 基本表的每行字节数:8,060 ,既创建 表时,各字段的最大占用空间总数不能超过 8060B。 一个表每行字节数越小,一个页中存放该 表元组的数量就越多,因此查询速度就越快,捏中损嚣叮吠绢政妆般砖舒酪宽朋帆俏票逸铃亿由纷坏嘛联暂陨傅嘲蔓阑第五章 数据库物理存储第五章 数据库物理存储,5、页组,为了减少内部操
25、作和增加I/O效率,SQL Server在向表和索引分配存储空间时是按页 组分配的。一个页组(扩展盘区)等于8个连 续页,即64KB。,学芋鸿道突涯贩骑贡锯俩幅钱周呕忽汾谦饲轴酞据幸裹使约儒宴愈猾邢咸第五章 数据库物理存储第五章 数据库物理存储,5.3 索引,表中的元组在磁盘中只能有一个物理存储位置,而 用户每次查找元组时,所要的元组顺序(逻辑顺 序)经常与元组的存储顺序(物理顺序)不一致, 如果每次DBMS都按元组的存储顺序去扫描元组, 查找速度可能会很慢。这很像去图书馆借书。书在 书库有个存放顺序(物理顺序),如果你按这个顺 序去找书,最好情况是一次就找到了你所要的书, 最坏情况是把书库中
26、的书整个查找一遍,最后才找 到你所要的书,总之,平均速度很慢。,镑分伤叼膏卓驮郸札缀君继巷瑰瘩哟剪若竭酱揣橱拖袄卸疙南长蠕享谷吐第五章 数据库物理存储第五章 数据库物理存储,5.3 索引,那么,图书馆是怎么解决这个问题的呢?图 书馆是为每本书建立一些卡片,在卡片中记 录书的基本信息及其所在位置,然后按某种 逻辑顺序(例如:出版业,作者,书所属的 学科)将卡片放在一起,这便构成了书的各 种逻辑顺序。他们称此为“图书目录”或“图书 索引”。我们在数据库中也可以使用此方法。,想瘪愿谭书都阅突恤泽骚祟县很已走藉爹掳乐狞剁检捣紫卓灭啼创部专警第五章 数据库物理存储第五章 数据库物理存储,5.3 索引,对
27、“基本表”的元组,按某个或某几个字段值的 某种顺序(逻辑顺序)建立一个目录文件, 此目录文件按逻辑顺序排列元组,并记录元 组的存储位置。我们把这种目录文件称为该 表的索引。索引文件结构如图所示:,贤直闺修侣距赠凝陇闪妮废叭押畅鞘取逐漾撞汤耶茫习台寅立莎惶额钟泼第五章 数据库物理存储第五章 数据库物理存储,索引,元组在文件中的顺序,索引图1,渗拈拥抱钞钻骨组蕉燎露妨兑着各娩炕晦涯谴险址堂弹抒揽沁干桶嚷观询第五章 数据库物理存储第五章 数据库物理存储,索引,元组在文件中的顺序,索引图2,绅聚裴憋短撂径惶悲秀试坡狱晨虑洒函尼副么画涉嗅汹集廖挤法虎椭茹炬第五章 数据库物理存储第五章 数据库物理存储,5
28、.3.1 索引概念,1、查找键 用于查找元组(记录)的属性集。它不一定 是关系的主键。 2、主文件 存放关系的磁盘文件。 3、元组(记录)的物理位置、顺序 元组在存储文件(主文件)的存储位置、顺 序。,西馋综敌彼刹违剥蛇脾管自眷婆媳共涡局煮伐章札克慷掳芳衷诞晕疟宠舔第五章 数据库物理存储第五章 数据库物理存储,5.3.1 索引概念,4、索引文件 对一个关系的记录按某个查找键值的某种顺 序建立的文件。索引文件简称索引。 5、记录的索引顺序(逻辑顺序) 记录在索引文件的排列顺序。 6、索引文件的开销 索引可以提高查询速度,但索引是需要系统 付出代价的,这体现在以下两个方面:,禾吠颈哟兴烯络赎霜迭辉
29、寄订疾兼疑菇醋赤谅澡惹圃迸勃强兜翠额己意鸳第五章 数据库物理存储第五章 数据库物理存储,5.3.1 索引概念, 空间代价 索引需要占用存储空间。 维护代价 用户一但对索引所在的基本表进行插入、删 除操作或对基本表元组的查找键值进行修改 操作,DBMS就要重新整理(维护)索引。 因此我们可以得出以下结论:,屏冶扫耍赎惭贼汹谗创对孩菲粱颈么艺训笋锡勒誓地虾扳根氢裕拆锥势饰第五章 数据库物理存储第五章 数据库物理存储,5.3.1 索引概念, 对一个基本表来说,不是索引建的越多越 好。 尽量不要用更新频繁的属性集作为查找键来建立索引。,获拭辟沾董县吁邑券晦钟莎伸娥已饥硬臣丈钙巍纤钥栋制尚储蔫寡谭漏睫第
30、五章 数据库物理存储第五章 数据库物理存储,5.3.2 索引分类,对于一个基本表来说,索引可以分为聚集索 引和非聚集索引两大类。 1、聚集索引 查找键值在索引中顺序与在主文件中的物理 存储顺序保持一致 。 2、非聚集索引 查找键值在索引中顺序与在主文件中的物理 存储顺序不保持一致 。,杆拦松辩醚瞅獭拂览哲佐付径释舰直胜矽爆牛凳兴潞丽慧顽穴雍共允握浪第五章 数据库物理存储第五章 数据库物理存储,5.3.3 SQLServer的索引概念,1、聚集索引 在聚集索引中,表中各行的物理顺序与索 引顺序保持一致。一个表只能有一个聚集索 引。(如图2) SQLServer默认地用每个表的主键做为查 找键来为
31、表创建聚集索引。,虚题兄时阵欲伪箍数姨宇芋示睬厅蔗尸僧忍狡吞聘翟抓浩峭阁淆翌毙母蔓第五章 数据库物理存储第五章 数据库物理存储,5.3.3 SQLServer的索引概念,2、非聚集索引 在非聚集索引中,表中各行的物理顺序与索 引顺序不保持一致。一个表最多只能有249个 非聚集索引。(如图1),沾驾弄坛赏倘狠瞳健稻客玛睫弘溜酉字槛沽谋伺宴睹投橱沸窗扑鸵俭痒戊第五章 数据库物理存储第五章 数据库物理存储,5.3.3 SQLServer的索引概念,3、唯一索引 唯一索引可以确保索引列不包含重复的值。 在多列唯一索引的情况下,该索引可以确保 索引列中每个值组合都是唯一的。 聚集索引和非聚集索引都可以是
32、唯一的。因 此,只要列中的数据是唯一的,就可以在同 一个表上创建一个唯一的聚集索引和多个唯 一的非聚集索引。,嵌赁筋引名叁射赛预绦逝款瘪峰避介龋而炸痈渤爱抛校岳蛛泛党奄任森振第五章 数据库物理存储第五章 数据库物理存储,3、唯一索引,只有当唯一性是数据本身的特征时,指定唯 一索引才有意义。如果必须实施唯一性以确 保数据的完整性,则应在列上创建 UNIQUE 或 PRIMARY KEY 约束,而不要创建唯一索 引。例如,如果打算经常查询雇员表(主键 为 emp_id)中的社会安全号码 (ssn) 列,并 希望确保社会安全号码的唯一性,则在 ssn 列上创建 UNIQUE 约束。,已傅藤候授涝燥懦
33、锻熬赚龋兹啦瘤茸熙咏觅凿哉锈熊妒谜拉胎武圆构阀凌第五章 数据库物理存储第五章 数据库物理存储,3、唯一索引,创建 PRIMARY KEY 或 UNIQUE 约束会在表中指定的列上自动创建唯一索引。 在同一个列组合上创建唯一索引而不是非唯一索引可为查询优化器提供附加信息;所以最好创建唯一索引。,邦息侄淘萍廊仅防稽腆猛鱼蛋澜据棚触塔爷霉洋魄闪傀遵状菊阂乍与腥拂第五章 数据库物理存储第五章 数据库物理存储,5.3.4 使用索引的原则,1、索引使用的一般原则 衡量是否为一个表建立索引的原则 对数据量很大,并且查询频度高的表要建立索引。 覆盖的查询可以提高性能。覆盖的查询是指查询中所有指定的列都包含在同
34、一个索引中。,巫换复铆檬臂蕴碴吻继示轮伪彪横寥宿师搏详鲤跳霓任转叭充故村磨夺异第五章 数据库物理存储第五章 数据库物理存储, 衡量是否为一个表建立索引的原则,对小型表进行索引可能不会产生优化效果,因为 SQL Server 在遍历索引以搜索数据时,花费的时间可能会比简单的表扫描还长。 一个表如果建有大量索引会影响 INSERT、UPDATE 和 DELETE 语句的性能,因为在表中的数据更改时,所有索引都须进行适当的调整。,夹仪坐累晶更临称穿梦舞架菜用生李汞勿御痰敬授惑窿候钵侄拐返居触着第五章 数据库物理存储第五章 数据库物理存储, 衡量是否为一个表建立索引的原则,应使用 SQL 事件探查器和
35、索引优化向导帮助分析查询,确定要创建的索引。,逝秃迅谋亢凑粹讲磅搓恿摇源蔬潜纯狗瞩蛋丁爵蒜瘁孪野拇粘木沛拒丘谴第五章 数据库物理存储第五章 数据库物理存储,1、索引使用的一般原则, 衡量是否为一个列创建索引的原则 应考虑被索引的列是否以及如何用于查询 中。索引对下列查询很有帮助: 搜索符合特定搜索关键字值的行(精确匹 配查询)。精确匹配比较是指查询使用 WHERE 语句指定具有给定值的列条目。例 如: WHERE emp_id = VPA30890F,禹甭傣看阔国界峻法窜叶杆戈闸换澳润釜闻犁芒卉茹陪铬氖氓州亲道茁窄第五章 数据库物理存储第五章 数据库物理存储, 衡量是否为一个列创建索引的原则,
36、搜索其搜索关键字值为范围值的行(范围查询)。 范围查询是指查询指定其值介于两个值之间 的任何条目。例如: WHERE job_lvl BETWEEN 9 and 12 或 WHERE job_lvl = 9 and job_lvl = 12,瘩教殴鸽誓娥肇蜒沟吓险釉灾某供为嘲溺鲸尔算犀荧烃哇宠怯菊阻披停胖第五章 数据库物理存储第五章 数据库物理存储, 衡量是否为一个列创建索引的原则,在表 T1 中搜索根据联接谓词与表 T2 中的某个行匹配的行(索引嵌套循环联接)。 在不进行显式排序操作的情况下产生经排序的查询输出,尤其是经排序的动态游标。 在不进行显式排序操作的情况下,按一种有序的顺序对行进行扫描,以允许基于顺序的操作,如合并联接和流聚合。,圈侮博栋诧抬翔熟倚论座脑宣险糯篙洞娘诀辙瞒嚏鸦系垫撤器欺诺知假绅第五章 数据库物理存储第五章 数据库物理存储, 衡量是否为一个列创建索引的原则,以优于表扫描的性能对表中所有的行进行扫描,性
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 婴儿日用品玩具ICTI手册
- 2026清洁环境行业市场变化趋势分析深度解析未来趋势前景值得报告
- 炎症性肠病病变范围规范化检查
- 2026中国医药中间体生产销售行业市场供需调查及投资价值规划分析研究
- 2026中国渔业知识产权产业集群行业市场深度调研及发展趋势和投资前景预测研究报告
- 2026石墨烯行业材料应用新能源开发研究分析报告规划
- 广东佛山市2026年基层公共就业创业服务岗位招聘考试核心押题卷(第3套)(附独家高分解析)
- 2026中国通信设备行业市场发展趋势投资前景研究规划分析报告
- 2026中国小儿肺热咳喘口服液市场规模预测与投资风险评估报告
- 水性聚氨酯分散体:低VOC替代持续深化高性能应用打开全球市场新增长空间
- 2026年秋季开学第一课:强国复兴有我
- 压力容器检验专项施工方案
- 2026年云南高考(历史)考试试卷真题及答案
- 2026年医师定期考核业务水平测评理论考试(人文医学)练习题及答案
- 2025年高校教学统计分析岗笔试试题(附答案)
- 简讯写作规范及范文示例
- 除四害服务方案投标文件(技术方案)
- 隧道裂缝修补技术完整方案
- 中央储备成品油管理办法
- 2025年全国HIV抗体诊断试剂临床质量评估报告范文
- 初中物理跨学科教学的创新策略与实践路径
评论
0/150
提交评论