怎样用dw做新闻发布网站,南昌做网站公司有哪些,08影院wordpress影视主题源码,潍坊网站建设SEO优化一、数据库的存储结构#xff1a;页 索引结构给我们提供了高效的索引方式#xff0c;不过索引信息以及数据记录都是保存在文件上的#xff0c;确切说时存储在页结构中#xff0c;另一方面#xff0c;索引是在存储引擎中实现的#xff0c;Mysql服务器上的存储引擎负责对表… 一、数据库的存储结构页 索引结构给我们提供了高效的索引方式不过索引信息以及数据记录都是保存在文件上的确切说时存储在页结构中另一方面索引是在存储引擎中实现的Mysql服务器上的存储引擎负责对表中数据的读取和写入工作。不同存储引擎中存放的格式一般是不同的甚至有的存储引擎比如Memory都不用磁盘来存储数据。 由于InnoDB是mysql的默认存储引擎所以下面主要讲解的是InnoDB存储引擎的数据存储结构。 1.1 磁盘与内存交互基本单位页 InnoDB将数据分为若干个页InnoDB中页的大小默认为16KB 以页作为磁盘和内存之间交互的基本单位也就是一次最少从磁盘中读取16KB的内容到内存中一次最少把内存中的16KB内容刷新到磁盘中也就是说在数据库中不论读一行还是读多行都是将这些行所在的页进行加载也就是说数据库管理存储空间的基本单位是页数据库IO操作的最小单位是页一个页中可以存储多个行记录。 记录时按照行来存储的但是数据库的读取并不以行为单位否则一次读取也就是一次IO操作只能处理一行数据效率会非常低 1.2页结构概述 页a、页b、页c...页n这些可以不在物理结构上相连只要通过双向链表相关联即可每个数据页中的记录会按照主键值从小到大的顺序组成一个单向链表每个数据页都会为存储在它里面的记录生成一个页目录在通过主键查找某条记录的时候可以在页目录中使用二分法快速定位到对应的槽然后再遍历该槽对应分组中的记录即可快速找到指定的记录。 1.3 页的大小 不同的数据库管理系统简称DBMS的页大小不同。比如在mysql的InnoDB存储引擎中默认页的大小是16KB我们可以通过下面的命令进行查看 show variables like %innodb_page_size% SQL Server 中页的大小为 8KB而在 Oracle 中我们用术语 块 Block来表示 页Oracle 支持的快大小为2KB, 4KB, 8KB, 16KB, 32KB 和 64KB。 1.4 页的上层结构 另外在数据库中还存在着区、段、和表空间的概念行、页、区、段、表空间的关系如下所示 区(Extent)是比页大一级的存储结构在InnoDB存储引擎中一个区会分配64个连续的页因为InnoDB中页大小默认是16KB所以一个区的大小是64*16KB1MB。 段(Segment)由一个或者多个区组成区在文件系统是一个连续分配的空间在InnoDB中是连续的64个页。不过在段中不要求区与区之间是相邻的。段是数据库中的分配单位不同类型的数据库对象以不同的段的形式存在。当我们创建数据表、索引的时候就会相应创建对应的段比如创建一张表时会创建一个表段创建一个索引时会创建一个索引段。 表空间(Tablespace)是一个逻辑容器表空间存储的对象时段在一个表空间中可以有一个或多个段但是一个段只能属于一个表空间。数据库由一个或多个表空间组成表空间从管理上可以分为 系统表空间、用户表空间、撤销表空间、临时表空间等。 二、页的内部结构 页如果按照类型划分的话常见的有数据页保存B数节点、系统页、Undo页和事务数据页等。数据页是我们最常用的页。 数据页的16KB大小的存储空间被划分为七个部分分别是文件头File Header,页头page Header、最大最小记用户记录User Records、空闲时间Free Space页目录Page Directory和文件尾File Tailer。 页结构的示意图如下所示 这七个部分作用分别如下 我们可以把这个7个结构分成3个部分 第一部分File Header文件头部和 FileTrailer文件尾部 首先文件通用部分也就是文件头和文件尾。 1、文件头信息 不同类型的页都会以File Header作为第一个组成部分它描述了一些针对各种页都通用的一些信息比方说这个页的编号是多少它的上一个页下一个页是谁等所有的数据页组成一个双链表这个部分占用固定的