Postgres如何儲存行? - Ketan
在這篇文章中,我將嘗試深入瞭解實現級別的細節並繪製出 PostgreSQL 行儲存的真正工作原理。
需要說明的是,PostgreSQL 在磁碟上儲存了大量檔案,例如事務提交資料、子事務狀態資料、預寫日誌 (WAL) 等。我只會探索堆檔案。現在什麼是堆檔案?堆檔案只是一個記錄檔案。請注意,堆檔案與堆記憶體無關。儘管它們的用例非常相似,都是儲存動態資料。
PostgreSQL 將實際資料儲存到段檔案(通常稱為堆檔案)中。通常它固定為 1GB 大小,但您可以在編譯時使用--with-segsize. 當一個表或索引超過 1 GB 時,它被劃分為千兆位元組大小的段。這種安排避免了在有檔案大小限制的平臺上出現的問題,但對於任何現代平臺來說,1GB 都是非常保守的選擇。
這些段檔案包含固定大小頁面中的資料,通常為 8Kb,儘管在使用選項編譯伺服器時可以選擇不同的頁面大小,--with-blocksize但在考慮效能和可靠性權衡時,此大小通常屬於理想大小。如果頁面大小太小,行將不適合頁面,如果太大,則存在寫入失敗的風險,因為硬體通常只能保證固定大小的塊的原子性,這些塊可以在磁碟之間變化(通常範圍從 512位元組到 4096 位元組)。
更多點選標題
相關文章
- 行式儲存 列式儲存
- 儲存卡變為RAW,如何進行儲存卡資料救援
- openGauss儲存技術(一)——行儲存引擎儲存引擎
- python如何儲存.npyPython
- Mysql 行的儲存格式MySql
- 如何進行雲端儲存架構框架設計?架構框架
- 作為最常用的儲存協議,企業如何進行NAS儲存統一管理?協議
- 使用SpringBoot JPA進行自定義的儲存及批量儲存Spring Boot
- iOS如何本地儲存PHAssetiOS
- 塊儲存 檔案儲存 物件儲存物件
- NAS網路儲存中如何進行陣列升級陣列
- 如何查詢一個儲存過程是否在執行儲存過程
- 如何利用區塊鏈技術進行資料儲存?區塊鏈
- 如何使用表格儲存控制檯進行資料監控
- 如何將MAC的檔案儲存至NAS網路儲存?Mac
- 區塊鏈資訊儲存是如何實現安全儲存區塊鏈
- 使用SpringBoot-JPA進行自定義的儲存及批量儲存Spring Boot
- 儲存—物件儲存_Minio物件
- nas網路儲存如何配置
- Linux中,如何配置iSCSI儲存?Linux
- mysql如何呼叫儲存過程MySql儲存過程
- 安防監控如何儲存?
- NAS中如何建立儲存池
- Linux 上如何禁用 USB 儲存Linux
- 如何延長儲存伺服器上資料的儲存時間?伺服器
- WordPress如何使用騰訊雲物件儲存COS儲存媒體庫附件物件
- python如何分散式儲存檔案?Python分散式
- 如何讓Notepad++自動儲存
- vertica 如何實現儲存過程?儲存過程
- 國產儲存晶片現狀如何?晶片
- MySQL如何有效的儲存IP地址MySql
- 如何遠端寫入prometheus儲存Prometheus
- 如何選擇mysql的儲存引擎MySql儲存引擎
- 資料儲存--檔案儲存
- Win10執行無法儲存歷史記錄怎麼辦 win10開始執行記錄不儲存如何解決Win10
- 物件儲存 vs 檔案儲存 vs 塊儲存,選哪個?物件
- 儲存
- 資料成本:雲端儲存成本高嗎如何節省資料儲存成本