⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 page.sgml

📁 关系型数据库 Postgresql 6.5.2
💻 SGML
字号:
<chapter id="page"><title>Page Files</title><abstract><para>A description of the database file default page format.</para></abstract><para>This section provides an overview of the page format used by <productname>Postgres</productname>classes.  User-defined access methods need not use this page format.</para><para>In the following explanation, a<firstterm>byte</firstterm>is assumed to contain 8 bits.  In addition, the term<firstterm>item</firstterm>refers to data which is stored in <productname>Postgres</productname> classes.</para><sect1><title>Page Structure</title><para>The following table shows how pages in both normal <productname>Postgres</productname> classes and <productname>Postgres</productname> indexclasses (e.g., a B-tree index) are structured.<table tocentry="1"><title>Sample Page Layout</title><titleabbrev>Page Layout</titleabbrev><tgroup cols="1"><thead><row><entry>Item</entry><entry>Description</entry></row></thead><tbody><row><entry>itemPointerData</entry></row><row><entry>filler</entry></row><row><entry>itemData...</entry></row><row><entry>Unallocated Space</entry></row><row><entry>ItemContinuationData</entry></row><row><entry>Special Space</entry></row><row><entry>``ItemData 2''</entry></row><row><entry>``ItemData 1''</entry></row><row><entry>ItemIdData</entry></row><row><entry>PageHeaderData</entry></row></tbody></tgroup></table></para><!--.\" Running.\" .q .../bin/dumpbpages.\" or.\" .q .../src/support/dumpbpages.\" as the postgres superuser.\" with the file paths associated with.\" (heap or B-tree index) classes,.\" .q .../data/base/<database-name>/<class-name>,.\" will display the page structure used by the classes..\" Specifying the.\" .q -r.\" flag will cause the classes to be.\" treated as heap classes and for more information to be displayed.--><para>The first 8 bytes of each page consists of a page header(PageHeaderData).Within the header, the first three 2-byte integer fields(<firstterm>lower</firstterm>,<firstterm>upper</firstterm>,and<firstterm>special</firstterm>)represent byte offsets to the start of unallocated space, to the endof unallocated space, and to the start of <firstterm>special space</firstterm>.Special space is a region at the end of the page which is allocated atpage initialization time and which contains information specific to anaccess method.  The last 2 bytes of the page header,<firstterm>opaque</firstterm>,encode the page size and information on the internal fragmentation ofthe page.  Page size is stored in each page because frames in thebuffer pool may be subdivided into equal sized pages on a frame byframe basis within a class.  The internal fragmentation information isused to aid in determining when page reorganization should occur.</para><para>Following the page header are item identifiers(<firstterm>ItemIdData</firstterm>).New item identifiers are allocated from the first four bytes ofunallocated space.  Because an item identifier is never moved until itis freed, its index may be used to indicate the location of an item ona page.  In fact, every pointer to an item(<firstterm>ItemPointer</firstterm>)created by <productname>Postgres</productname> consists of a frame number and an index of an itemidentifier.  An item identifier contains a byte-offset to the start ofan item, its length in bytes, and a set of attribute bits which affectits interpretation.</para><para>The items themselves are stored in space allocated backwards fromthe end of unallocated space.  Usually, the items are not interpreted.However when the item is too long to be placed on a single page orwhen fragmentation of the item is desired, the item is divided andeach piece is handled as distinct items in the following manner.  Thefirst through the next to last piece are placed in an itemcontinuation structure(<firstterm>ItemContinuationData</firstterm>).This structure containsitemPointerDatawhich points to the next piece and the piece itself.  The last pieceis handled normally.</para></sect1><sect1><title>Files</title><para><variablelist><varlistentry><term><filename>data/</filename></term><listitem><para>Location of shared (global) database files.</para></listitem></varlistentry><varlistentry><term><filename>data/base/</filename></term><listitem><para>Location of local database files.</para></listitem></varlistentry></variablelist></para></sect1><sect1><title>Bugs</title><para>The page format may change in the future to provide more efficientaccess to large objects.</para><para>This section contains insufficient detail to be of any assistance inwriting a new access method.</para></sect1></chapter>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -