2007-04-11

PostgreSQL 8.3的新功能[HOT](一)(簡體)

更新:2007-04-11
對映章節:
【PostgreSQLウォッチ】第35回 性能を大幅に改善するPostgreSQL 8.3の新機能「HOT」とは

原文來自日经BP网站的“PostgreSQL观察”栏目,作者是石井达夫先生。

现在正在开发中的PostgreSQL 8.3,很快就要「feature freeze」(功能确定)。5月期间进入β测试阶段,最早预计在7月正式发表。
8.3版本在性能方面有大幅度的改善,尤其被关注的是HOT(Heap Only Tuples)。

关于HOT
HOT用一句话描述的话就是:改善PostgreSQL更新性能的部件。在说明HOT之前,首先解释为何PostgreSQL的更新性能成为一个问题。

PostgreSQL更新处理的弱点
PostgreSQL采用追加型的架构,更新的时候,在数据库内部删除行之后再追加新行。删除掉的行由VACUUM命令作为可以再利用区域回收,然后被再利用。如果频繁进行更新处理也必须让VACUUM频繁运行,不然废弃区域会不断增加导致数据表肥大化而致使性能恶化。
VACUUM需要扫描数据表的全部数据,所以数据表越大处理时间越长。因此,如果数据表很大而且更新又很频繁,那么无论怎么频繁运行VACUUM也来不及回收更新处理产生的废弃区域。
然而问题不仅如此。
更新处理不仅仅是针对数据表本身,索引也必须同时更新。PostgreSQL的某个列被更新的话,关联索引也需要全部更新。因此,拥有大量索引的数据表的更新处理量将会特别大,索引也会越来越肥大化。索引的废弃区域也因此难于被VACUUM回收再利用,比数据表的问题更加严重。

利用HOT消除废弃区域
HOT为了解决这个问题设计了新的更新处理算法,利用HOT,不仅仅是数据表的肥大化,索引的无用肥大化也可以防止。

To be continued ...

沒有留言:

網誌存檔

PostgreSQL & Google-Analytics Running...

::Planet PostgreSQL::

PostgreSQL Information Page

PostgreSQL日記(日本 石井達夫先生Blog)

PostgreSQL News

黑喵的家 - 資料庫相關

Google 網上論壇
PostgreSQL 8 DBA 專業指南中文版
書籍內容討論與更多下載區(造訪此群組)
目錄下載: PostgreSQL_8 _DBA_Index_zh_TW.pdf (更新:2007-05-18)

全球訪客分佈圖(Google)

全球訪客分佈圖(Google)