PostgreSQL技術大講堂 - 第16講:元組(行)結構與dml操作
最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯系在線老師,甲骨文官方認證,報名從速!
我要咨詢
PostgreSQL從小白到專家,是從入門逐漸能力提升的一個系列教程,內容包括對PG基礎的認知、包括安裝使用、包括角色權限、包括維護管理、、等內容,希望對熱愛PG、學習PG的同學們有幫助,歡迎持續關注CUUG PG技術大講堂。
Part 16:元組(行)結構與dml操作
內容1:PostgreSQL行結構
內容2:DML操作方式
內容3:塊空間清理
· 元組(行)結構
t_xmin保存插入此元組的事務的txid。
t_xmax保存刪除或更新此元組的事務的txid。如果此元組未被刪除或更新,則t_xmax設置為0,這意味著無效。

行頭信息
· 塊中的行結構

工具介紹
· Pageinspect工具
PostgreSQL提供了一個擴展pageinspect,它是一個貢獻模塊,用來顯示數據庫頁面的內容。
該pageinspect模塊提供的功能允許我們從底層檢查數據庫頁面的內容,這對于調試非常有用。所有這些功能只能由超級用戶使用
· 使用方法:
CREATE EXTENSION pageinspect;SELECT lp as tuple, t_xmin, t_xmax, t_field3 as t_cid, t_ctid FROM heap_page_items(get_raw_page('tbl', 0));
DML操作
· Insertion

· Deletion

· Update
執行第一個更新命令時,通過將txid 100設置為t_xmax,邏輯上刪除Tuple_1,然后插入Tuple_2。然后,將元組1的t_ctid重寫為指向元組2。
當執行第二個UPDATE命令時,與第一個UPDATE命令一樣,Tuple_2在邏輯上被刪除,Tuple_3被插入。

塊空間清理
· Vacuum操作
塊中被刪除的行的是邏輯上刪除,物理上還保留在塊中,如果長時間不清理,會造成垃圾空間膨脹,設想,如果一個塊中有50%垃圾,那么就浪費50%的存儲空間,如果讀到內存,也會浪費50%的內存空間,所以需要定期的清理,而清理的工作由AutoVacuum來操作,或者我們也可以手動操作。
pg_freespacemap插件可以很好的監測塊中空間的使用情況,可當作full vacuum操作的參考信息。

以上就是Part 16 - PostgreSQL 元組(行)結構與dml操作 的內容,歡迎進群一起探討交流QQ交流群:752027153微信交流群:聯系客服拉你進微信PG交流群釘釘交流群:35822460,釘釘群專門有視頻講解