PostgreSQLスキルアップノート(自己啓発のための個人サイト)
HOT(Heap Only Tuple)
【一覧に戻る】
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■■■■ PostgreSQL スキルアップノート
■■■■
■◆■■ HOT(Heap Only Tuple)
■■■■
■■■■
■■■■ 2012/12/11
■■■■ 使用環境:PostgreSQL9.1.4 (CentOS6.2)
(C) 2012 ohdb
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
★自己都合により実機確認は9.1、マニュアルへのリンクは9.2としています。ご了承下さい。
マニュアルには詳しい記述が見つからない(?)のでリンクはありません。
下記Let's Postgresの記事を参照。
【マニュアル】
なし
【参考記事】
Let's Postgres→●[記事]
■1■ HOTの特徴
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
・UDPATE時のインデックス書き込み負荷が軽減される
「HOT」ではインデックスカラム以外へのUPDATEの場合、インデックスの更新を抑える
ことができるようになった。
PostgreSQLは追記型なので、従来はUPDATEの際に発生する物理的な行追加に伴って、
値に変更のないインデックスへも追記が発生していた。
・バキュームが不要になる
HOT更新が適用された場合はバキューム処理は要らない。
その代わり他の処理(たとえばSELECT等)がアクセスのついでに不要領域を解放していく・・
■2■ HOTを効かせる条件は?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
・インデックスのないカラムの更新であることが条件。
・UPDATE時に同じページ内へ追記できることが条件。
--->空きがなければダメ
-->FILLFACTORの設計が重要となる。
2点目の条件(同じページ内の空き)について
インデックスのないカラム更新だからHOT更新だと思っていたら、
実はそうではなかったということになりかねないのではないか?
という不安
・・・次項にて検証
以上