설문조사
PostgreSQL/PPAS 관련 듣고 싶은 교육은


총 게시물 162건, 최근 0 건
   

HOT update

글쓴이 : 주킹 날짜 : 2017-06-30 (금) 12:54 조회 : 5477

Index 크기가 증가하는 것에 대하여 고민하다가

간단히 Test 해본것을 공유드립니다.

HOT update는 같은 페이지에 있을 경우 index의 row가 추가가 안된다는 개념으로 전 이해했습니다.

create table t1 (serial_num numeric, address varchar, ctime timestamp, utime timestamp);
create table t2 (serial_num numeric, address varchar, ctime timestamp, utime timestamp) with (fillfactor=50);
insert into t1 (serial_num,address,ctime) values (generate_series(10000000001,10000500000),'seoul',current_timestamp);
insert into t2  (serial_num,address,ctime) values (generate_series(10000000001,10000500000),'seoul',current_timestamp);
vacuum analyze t1;
vacuum analyze t2;

alter table t1 add primary key (serial_num);
alter table t2 add primary key (serial_num);

update t1 set  address='부산6'

update t2 set  address='부산6'

analyze;
# 500000건에 대한 전체 update 시 HOT update양
 SELECT pg_stat_get_tuples_hot_updated(t1::regclass::oid);
 0
 SELECT pg_stat_get_tuples_hot_updated(t2::regclass::oid);
 287240

update,delete가 많은 환경에서는 table fillfactor를 조정하여 HOT update가 많이 발생하도록

조정하는게 필요할거 같습니다.

추가적으로 이러한 테이블에 대하여 autovacuum설정을 자주 돌도록 조정하는 거 또한 고려하시길 바랍니다.


   

postgresdba.com