<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在數據文件內部(堆表和索引,以及空閑空間映射和可見性映射),它被分成固定長度的頁(或塊),默認為8192字節(8 KB)。 每個文件中的那些頁從 0 開始按順序編號,這樣的編號稱為塊編號。 如果文件已被填滿,PostgreSQL 會在文件末尾添加一個新的空頁以增加文件大小。 ![](https://img.kancloud.cn/ef/2a/ef2add6c8a1ad37d366988eed5e326e0_3126x1088.png) 表中的頁面包含三種數據: * heap tuples: 行數據 * line pointers: 行指針,指向對應的tuple,offffset number從1開始 * header data: * pd_lsn :保存此page的最新的WAL記錄的lsn,用于數據恢復的 * pd_lower :指向最新的line pointer * pd_upper: 指向最新的tuple * pd_checksum:此變量存儲此頁面的校驗和值。 * pd_special:此變量用于索引。 在表格內的頁面中,它指向頁面的末尾。 (在索引內頁中,它指向特殊空間的開始,即只由索引保存的數據區,根據B-tree、GiST、GiN等索引類型包含特定數據。) **寫操作** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;假設一個表由一頁組成,其中只包含一個堆元組。 本頁的pd_lower指向第一行指針,行指針和pd_upper都指向第一個堆元組。 見圖 (a)。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;當插入第二個元組時,它被放置在第一個元組之后。 第二行指針被推到第一行指針上,它指向第二個元組。 pd_lower 更改為指向第二行指針,pd_upper 更改為指向第二個堆元組。 見圖 (b)。 此頁中的其他頭數據(例如,pd_lsn、pg_checksum、pg_flag)也被重寫為適當的值 ![](https://img.kancloud.cn/81/c5/81c5536af8656cb31a22ef7d8c5b011a_3054x682.png) **讀操作** * sequential scan:遍歷所有的pages的line pointers獲取所有的tuples; * index scan:通過索引獲取tids,然后再根據tids獲取tuples; * index only scan:一般來說只掃描索引就能獲取需要的字段,不需要回表讀,需要VM配合使用; * bitmap index scan:當index scan命中大量的rows時,將會構造一個page的bitmap(一個bit對應一個 page),然后在recheck每個page找到符合條件的rows,這樣可以避免重復掃描page; ![](https://img.kancloud.cn/05/c5/05c5ee3bc28a67f81ca7a015c7232fa5_2908x1842.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看