① 数据库索引文件一般采用什么数据结构
关于数据库索引的数据结构,大多数数据库都是采用B树。
1、非主键索引需要在数据表本身的存储空间外额外开销存储空间,所以在更新的时候可能不仅要更新数据表本身,还要更新非主键索引,更新内容更多了,所以导致速度降低。反过来,如果数据表中的数据按照主键索引的顺序存储,更新的时候就没有额外的开销。
2、非主键索引对提高查询速度来讲,主要的方面是:检索的条件(where...)如果命中对应的非主键索引的话,就不需要对数据表做全表扫描,效率肯定是大大提高。(索引的创建和使用是数据库设计和优化的重要部分,是一个数据库程序员的必修课,不同数据库系统的语法不同,但是原理基本相同)。
3、如果检索结果的字段包含在非主键索引中,即使对非主键索引做全扫描,也比对整表字段做全扫描快,因为只有非主键索引本身的数据需要从存储设备调入内存,节约了IO时间。
(1)数据库索引的物理结构扩展阅读:
1、选择唯一性索引 唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生表中学号是具有唯 一性的字 段。为该字段建立唯一性索引可以很快的确定某个学生的信息。如果使用姓名的话,可能存 在同名现象, 从而降低查询速度。
2、尽量使用数据量少的索引 如果索引的值很长,那么查询的速度会受到影响。例如,对一个CHAR(100)类型的字段进行全文检索 需要的时间肯定要比对CHAR(10)类型的字段需要的时间要多。
3、尽量使用前缀来索引 如果索引字段的值很长,最好使用值的前缀来索引。例如,TEXT和BLOG类型的字段,进行全文检 索会很浪费时 间。如果只检索字段的前面的若干个字符,这样可以提高检索速度。
② 数据库中索引的结构和什么情况下不适合建索引
1>数据库中索引的结构是一种排序的数据结构。
2>数据库索引是通过B树和变形的B+树实现的。
3>什么情况下不适合建立索引?
1.对于在查询过程中很少使用或参考的列,不应该创建索引。
2.对于那些只有很少数据值的列,不应该创建索引。
3.对于那些定义为image,text和bit数据类型的列,不应该创建索引。
4.当修改性能远大于检索性能,不应该建立索引。
4>建立索引的优点?
1.通过创建唯一性的索引,可以保证表中每一行数据的唯一性;
2.可以大大加快表中数据的检索素的,这也是创建索引的主要原因;
3.可以加快表与表之间的链接,特别是在实现表与表之间的参考完整性实现有特别的意义;
4.通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统性能。
5>建立索引的缺点?
1.创建索引和维护索引耗时,时间随着数据的增加而增加,成正比;
2.索引需要占物理空间,除了数据表占数据空间外,每一个索引还要占一定的物理空间,如果建立聚簇索引,占得物理空间会更大;
3.当对表中的数据进行维护时,对索引也要进行维护,这样就降低了数据的维护速度。
可以在数据库中建立三种索引:唯一索引,主键索引,聚集索引。
唯一索引(unique) :不允许任意两行具有相同索引值的索引。
主键索引(primary):数据表中经常有一列或多列组合,其职唯一标识要求主键中的每表中的每一行,则该列称为主键。个值都是唯一的,当查询时使用主键索引,他还允许对数据的快速访问。
聚集索引():表中行的物理顺序和表中的逻辑顺序相同。一个标志能有一个聚集索引。
如果一个索引不是聚集索引,则表中的数据的物理顺序和表中的逻辑顺序不相同。
③ 数据库的物理结构设计指的是什么
Log File物理结构
log block结构分为日志头段、日志记录、日志尾部
Block Header,占用12字节
Data部分
Block tailer,占用4字节
Block Header
这个部分是每个Block的头部,主要记录的块的信息
Block Number,表示这是第几个block,占用4字节,是通过LSN计算得来的,占用4字节
Block data len,表示该block中有多少字节已经被使用了,占用2字节
First Rec offet,表示该block中作为第一个新的mtr开始的偏移量,占用2字节
Checkpoint number,表示该log block最后被写入时的检查点的值,占用4字节
④ 数据库物理结构中,存储着哪几种形式的数据结构
Log File物理结构
log block结构分为日志头段、日志记录、日志尾部
Block Header,占用12字节
Data部分
Block tailer,占用4字节
Block Header
这个部分是每个Block的头部,主要记录的块的信息
Block Number,表示这是第几个block,占用4字节,是通过LSN计算得来的,占用4字节
Block data len,表示该block中有多少字节已经被使用了,占用2字节
First Rec offet,表示该block中作为第一个新的mtr开始的偏移量,占用2字节
Checkpoint number,表示该log block最后被写入时的检查点的值,占用4字节
⑤ 什么是索引结构
索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。 索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引的方式与您使用书籍中的索引的方式很相似:它搜索索引以找到特定值,然后顺指针找到包含该值的行。 在数据库关系图中,您可以在选定表的“索引/键”属性页中创建、编辑或删除每个索引类型。当保存索引所附加到的表,或保存该表所在的关系图时,索引将保存在数据库中。
⑥ 请问Oracle的数据库体系的物理结构是怎样的
物理结构,即Oracle数据库使用的操作系统文件结构。
对于数据库物理结构文件,不同的oracle版本,不同的操作系统平台上有不同的存储目录结构.
数据库的物理结构文件按其作用可以分为三类:
数据文件
日志文件
控制文件
一、数据文件
数据文件用来存储数据库的数据,如表、索引等。读取数据时,系统首先从数据库文件中读取数据,并存储到SGA的数据缓冲区中。
二、重做日志文件
重做日志文件记录对数据库的所有修改信息。它是三类文件中最复杂的一类文件,也是保证数据库安全与数据库备份与恢复有直接关系的文件。
三、控制文件
控制文件是一个二进制文件,用来描述数据库的物理结构,一个数据库只需要一个控制文件,控制文件的内容包括:
数据库名及数据库唯一标识
数据文件和日志文件标识
数据库恢复所需的同步信息,即检查点号
.
Oracle数据库的体系结构包括四个方面:数据库的物理结构、逻辑结构、内存结构及进程。
⑦ 文件的物理结构有哪3种,分别具备什么优缺点
一、顺序结构
优点:
1、支持顺序存取和随机存取。
2、顺序存取速度快。
3、所需的磁盘寻道次数和寻道时间最少。
缺点:
1、需要为每个文件预留若干物理块以满足文件增长的部分需要。
2、不利于文件插入和删除。
二、链式结构
优点:
1、提高了磁盘空间利用率,不需要为每个文件预留物理块。
2、有利于文件插入和删除。
3、有利于文件动态扩充。
缺点:
1、存取速度慢,不适于随机存取。
2、当物理块间的连接指针出错时,数据丢失。
3、更多的寻道次数和寻道时间。
4、链接指针占用一定的空间,降低了空间利用率。
三、索引结构
优点:
1、不需要为每个文件预留物理块。
2、既能顺序存取,又能随机存取。
3、满足了文件动态增长、插入删除的要求。
缺点:
1、较多的寻道次数和寻道时间。
2、索引表本身带来了系统开销。如:内外存空间,存取时间等。
拓展资料:
文件存取方法:
顺序存取:顺序存取是按照文件的逻辑地址顺序存取。
固定长记录的顺序存取是十分简单的。读操作总是读出上一次读出的文件的下一个记录,同时,自动让文件记录读指针推进,以指向下一次要读出的记录位置。如果文件是可读可写的。再设置一个文件记录指针,它总指向下一次要写入记录的存放位置,执行写操作时,将一个记录写到文件 末端。允许对这种文件进行前跳或后退N(整数)个记录的操作。顺序存取主要用于磁带文件,但也适用于磁盘上的顺序文件。
可变长记录的顺序文件,每个记录的长度信息存放于记录前面一个单元中,它的存取操作分两步进行。读出时,根据读指针值先读出存放记录长度的单元 。然后,得到当前记录长后再把当前记录一起写到指针指向的记录位置,同时,调整写指针值 。
由于顺序文件是顺序存取的,可采用成组和分解操作来加速文件的输入输出。
直接存取(随机存取法):
很多应用场合要求以任意次序直接读写某个记录。例如,航空订票系统,把特定航班的所有信息用航班号作标识,存放在某物理块中,用户预订某航班时,需要直接将该航班的信息取出。直接存取方法便适合于这类应用,它通常用于磁盘文件。
为了实现直接存取,一个文件可以看作由顺序编号的物理块组成的,这些块常常划成等长,作为定位和存取的一个最小单位,如一块为1024字节、4096字节,视系统和应用而定。于是用户可以请求读块22、然后,写块48,再读块9等等。直接存取文件对读或写块的次序没有限制。用户提供给操作系统的是相对块号,它是相对于文件开始位置的一个位移量,而绝对块号则由系统换算得到。
索引存取:
第三种类型的存取是基于索引文件的索引存取方法。由于文件中的记录不按它在文件中的位置,而按它的记录键来编址,所以,用户提供给操作系统记录键后就可查找到所需记录。通常记录按记录键的某种顺序存放,例如,按代表健的字母先后次序来排序。对于这种文件,除可采用按键存取外,也可以采用顺序存取或直接存取的方法。信息块的地址都可以通过查找记录键而换算出。实际的系统中,大都采用多级索引,以加速记录查找过程。
参考资料:网络:文件存取法
⑧ 什么叫索引索引的作用和分类
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。
在数据库系统中建立索引主要有以下作用:
(1)快速取数据;
(2)保证数据记录的唯一性;
(3)实现表与表之间的参照完整性;
(4)在使用ORDER by、group by子句进行数据检索时,利用索引可以减少排序和分组的时间。
索引的分类:
1、普通索引
最基本的索引类型,没有唯一性之类的限制。
2、唯一索引
唯一索引是不允许其中任何两行具有相同索引值的索引。
3、主键索引
简称为主索引,数据库表中一列或列组合(字段)的值唯一标识表中的每一行。该列称为表的主键。
4、候选索引
与主索引一样要求字段值的唯一性,并决定了处理记录的顺序。在数据库和自由表中,可以为每个表建立多个候选索引。
5、聚集索引
也称为聚簇索引,在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引, 即如果存在聚集索引,就不能再指定CLUSTERED 关键字。
6、非聚集索引
也叫非簇索引,在非聚集索引中,数据库表中记录的物理顺序与索引顺序可以不相同。一个表中只能有一个聚集索引,但表中的每一列都可以有自己的非聚集索引。
⑨ 数据库索引是什么,有什么用,怎么用
1、数据库索引是什么,有什么用
数据库索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。
索引的一个主要目的就是加快检索表中数据的方法,亦即能协助信息搜索者尽快的找到符合限制条件的记录ID的辅助数据结构。
2、数据库索引的用法
当表中有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量数据库系统时间,并造成大量磁盘I/O操作;
第二种就是在表中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到表中对应的记录。
索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识值的数据页的逻辑指针清单。
(9)数据库索引的物理结构扩展阅读:
一、索引的原理:
对要查询的字段建立索引其实就是把该字段按照一定的方式排序;建立的索引只对该字段有用,如果查询的字段改变,那么这个索引也就无效了,比如图书馆的书是按照书名的第一个字母排序的,那么你想要找作者叫张三的就不能用改索引了;还有就是如果索引太多会降低查询的速度。
二、数据库索引的特点:
1、避免进行数据库全表的扫描,大多数情况,只需要扫描较少的索引页和数据页,而不是查询所有数据页。而且对于非聚集索引,有时不需要访问数据页即可得到数据。
2、聚集索引可以避免数据插入操作,集中于表的最后一个数据页面。
3、在某些情况下,索引可以避免排序操作。