一、顺序结构
优点:
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、所需的磁盘寻道次数和寻道时间最少。
缺点:
1、需要为每个文件预留若干物理块以满足文件增长的部分需要。
2、不利于文件插入和删除。
二、链式结构
优点:
1、提高了磁盘空间利用率,不需要为每个文件预留物理块。
2、有利于文件插入和删除。
3、有利于文件动态扩充。
缺点:
1、存取速度慢,不适于随机存取。
2、当物理块间的连接指针出错时,数据丢失。
3、更多的寻道次数和寻道时间。
4、链接指针占用一定的空间,降低了空间利用率。
三、索引结构
优点:
1、不需要为每个文件预留物理块。
2、既能顺序存取,又能随机存取。
3、满足了文件动态增长、插入删除的要求。
缺点:
1、较多的寻道次数和寻道时间。
2、索引表本身带来了系统开销。如:内外存空间,存取时间等。
文件的结构及存取方法:文件的组织形式是文件的结构,从不同的角度分析文件有不同的结构形式:逻辑结构和物理结构。从用户角度出发,研究文件的抽象组织方式而定义的文件组织形式为文件的逻辑结构。
文件是一个具有符号的一组相关联元素的有序序列。文件可以包含范围非常广泛的内容。系统和用户都可以将具有一定独立功能的程序模块、一组数据或一组文字命名为一个文件。
文件的物理结构有单级目录结构、两级目录结构、多级目录结构。各自优缺点及特点如下:
①单级目录结构:
在整个文件系统中只建立一张目录表,每个文件占一个目录项。当访问一个文件时,先按文件名在该目录中查找到相应的FCB,经合法性检查后执行相应的操作。单级目录结构实现了 “按名存取”,但是存在查找速度慢、文件不允许重名、不便于文件共享等缺点,而且对于多用户的操作系统显然是不适用的。
②两级目录结构:
将文件目录分成主文件目录(Master File Directory, MFD)和用户文件目录(User File Directory, UFD)两级。主文件目录项记录用户名及相应用户文件目录所在的存储位置。两级目录结构可以解决多用户之间的文件重名问题,文件系统可以在目录上实现访问限制。但是两级目录结构缺乏灵活性,不能对文件分类。
③多级目录结构(树形目录结构):
将两级目录结构的层次关系加以推广,就形成了多级目录结构,即树形目录结构。用户要访问某个文件时用文件的路径名标识文件,文件路径名是个字符串,由从根目录出发到所找文件的通路上的所有目录名与数据文件名用分隔符链接起来而成。
树形目录结构可以很方便地对文件进行分类,层次结构清晰,也能够更有效地进行文件的管理和保护。但是,在树形目录中查找一个文件,需要按路径名逐级访问中间结点,这就增加了磁盘访问次数,无疑将影响查询速度,树形目录结构可便于实现文件分类,但不便于实现文件共享。
数据结构在计算机中的表示(映像)称为数据的物理(存储)结构。它包括数据元素的表示和关系的表示。 物理结构,即oracle数据库使用的操作系统文件结构。对于数据库物理结构文件,不同的oracle版本,不同的操作系统平台上有不同的存储目录结构。
数据文件用来存储数据库的数据,如表、索引等。读取数据时,系统首先从数据库文件中读取数据,并存储到SGA的数据缓冲区中。
这是为了减少I/O,如果读取数据时,缓冲区中已经有要读取的数据,就不需要再从磁盘中读取了。存储数据时也是一样,事务提交时改变的数据先存储到内存缓冲区中,再由oracle后台进程DBWR决定如何将其写入到数据文件中。
物理结构 百度百科
一、顺序结构
优点:
1、简单:存储与管理都简单,且容易实现。
2、支持顺序存取和随机存取。
3、顺序存取速度快。
4、所需的磁盘寻道次数和寻道时间最少。
缺点:
1、需要为每个文件预留若干物理块以满足文件增长的部分需要。
2、不利于文件插入和删除。
二、链式结构
优点:
1、提高了磁盘空间利用率,不需要为每个文件预留物理块。
2、有利于文件插入和删除。
3、有利于文件动态扩充。
缺点:
1、存取速度慢,不适于随机存取。
2、当物理块间的连接指针出错时,数据丢失。
3、更多的寻道次数和寻道时间。
4、链接指针占用一定的空间,降低了空间利用率。
三、索引结构
优点:
1、不需要为每个文件预留物理块。
2、既能顺序存取,又能随机存取。
3、满足了文件动态增长、插入删除的要求。
缺点:
1、较多的寻道次数和寻道时间。
2、索引表本身带来了系统开销。如:内外存空间,存取时间等。
广义的“文件”指公文书信或指有关政策、理论等方面的文章。文件的范畴很广泛,电脑上运行的如杀毒、游戏等软件或程序都可以叫文件。
狭义的“文件”一般特指文书,或者叫做公文。文件是人们在各种社会活动中产生的记录。狭义的"文件"并不能等同于”档案“,它们的主要区别在于是否具有保存价值以及是否具备原始记录的性质。如果两者都具备,则可以称之为”档案“,否则只能算作文件。虽然两者有很大的交集,但绝不能等同。
计算机文件属于文件的一种,与普通文件载体不同,计算机文件是以计算机硬盘为载体存储在计算机上的信息集合。文件可以是文本文档、图片、程序等等。
文件通常具有三个字母的文件扩展名,用于指示文件类型(例如,图片文件常常以 JPEG 格式保存并且文件扩展名为 .jpg)。
文件有很多种,运行的方式也各有不同。一般来说我们可以通过文件名来识别这个文件是哪种类型,特定的文件都会有特定的图标(就是显示这个文件的样子),也只有安装了相应的软件,才能正确显示这个文件的图标。
文件是对软件中另一组成部分──程序的解释和说明,是对研制过程进行管理的重要手段。文件也是使用、理解和维护软件所不可缺少的重要资料。
基本单位是字符,流式文件是有序字符的集合,其长度为该文件所包含的字符个数,所以称为字符流文件。
文件_百度百科
Log File物理结构
从 ib_logfile0和 ib_logfile1这两个文件的物理结构可以看出,在Log Header部分还是有些许差异的, ib_logfile0会多一些额外的信息,主要是checkpoint信息。
并且每个Block的单位是512字节,对应到磁盘每个扇区也是512字节,因此redo log写磁盘是原子写,保证能够写成功,而不像index page一样需要double write来保证安全写入。
我们依次从上到下来看每个Block的结构
Log File Header Block
Log Goup ID,可能会配置多个redo组,每个组对应一个id,当前都是0,占用4字节
Start LSN,这个redo log文件开始日志的lsn,占用8字节
Log File Number,总是为0,占用4字节
Created By,备份程序所占用的字节数,占用32字节
另外在ib_logfile0中会有两个checkpoint block,分别是 LOG_CHECKPOINT_1/ LOG_CHECKPOINT_2,两个记录InnoDB Checkpoint信息的字段,分别从文件头的第二个和第四个block开始记录,并且只在每组log的第一个文件中存在,组内其他文件虽然没有checkpoint相关信息,但是也会预留相应的空间出来。这里为什么有两个checkpoint的呢?原因是设计为交替写入,避免因为介质失败而导致无法找到可用的checkpoint的情况。
Log blocks
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字节