postgreSQL에서의 튜플과 레코드

뿌이·2023년 3월 16일
0

postgreSQL

목록 보기
3/6

튜플과레코드

  • 라이브튜플 (테이블 select하면 조회되는 튜플)
  • 데드튜플 (업데이트하거나 삭제하면 데드튜플이 생김)
--해당 테이블만 간단하게 실행
vacum analyse {테이블명};

--특정 테이블만 풀 실행
vacum full {테이블명};

--설정파일 보는법
select * from pg_settings where name like '%vacum%';

--튜플에 대한 정보
select
n.

데드튜플이 많이 생기면 안좋은게, 성능문제가 있다. 느려짐

데드튜플을 없애주는게 메타의역할

autovacum이 데드튜플을 없애준다.
analyze는 약하게 배큠을 하는것
배큠은 실제 물리적인 데드튜플까지 지우는데, analyze는 물리적인거까지 지우지는 않아서 실제 성능을 좋아지게까지는 하지 못한다.

베큠은 디스크 조각모음 같은 개념
업데이트나 딜리트를 하면 나오는 부산물들을 제거해주는 역할이다.

autovacum_vacum_scale_factor 이 0.5가 넘으면 무조건 베쿰을 씀
그래서 세팅을 할 때에 DBA가 보통 세팅하는데,
그래서 보통의 개발자는 이걸 세팅할 일은 없다.
그래서 베쿰을 자주 실행하고싶으면 0.5 넘게 설정하면 되고
자주 사용안하고 싶으면 0.2 정도로 0.5보다 낮게 설정하면 된다.

dead tuple이 생기는 이유?

동시성 제어가 필수적이기 때문에
A 트랜잭션과 B트랜잭션이 같이 돈다면 A가 실행됐을 때에 B에서 이미 커밋을 했더라도 B에서 커밋한 데이터를 가지고 다시 변화시키지 않는다.
그래서 데이터를 계속 스냅샷을 찍어놓는다고 생각하면 된다.
이런 동시성 제어때문에 dead tuple이 생길 수 밖에 없다.

profile
기록이 쌓이면 지식이 된다.

0개의 댓글

관련 채용 정보