[PostgreSQL] 데이터베이스 용량 조회 방법
·
개발 (Development)/PostgreSQL
PostgreSQL에서 데이터베이스의 용량을 조회하는 방법은 다양합니다. 이 글에서는 데이터베이스, 테이블, 인덱스 등의 용량을 확인하는 다양한 SQL 쿼리를 소개합니다.1. 전체 데이터베이스 용량 조회현재 접속 중인 데이터베이스의 전체 크기를 조회하려면 아래의 쿼리를 사용합니다.SELECT pg_size_pretty(pg_database_size(current_database()));pg_database_size 함수는 바이트 단위로 크기를 반환하며, pg_size_pretty를 사용하면 사람이 읽기 좋은 형식(예: MB, GB)으로 출력됩니다.2. 특정 데이터베이스 용량 조회다른 데이터베이스의 크기를 확인하고 싶다면 데이터베이스 이름을 인자로 전달합니다.SELECT pg_size_pretty(pg_d..
[PostgreSQL] WAL(Write-Ahead Logging) 로그 관리 가이드
·
개발 (Development)/PostgreSQL
PostgreSQL WAL(Write-Ahead Logging) 로그 관리 가이드PostgreSQL의 WAL(Write-Ahead Logging) 로그가 가득 차지 않도록 유지하려면 몇 가지 설정을 조정해야 합니다. 특히, 자동 체크포인트 설정, WAL 보존 주기 설정, 아카이빙 정책 등을 관리하면 WAL 크기를 제어할 수 있습니다. 해당 기능을 찾아보게 된 이유는 업무 중 AWS에 서비스 배포 및 이관 시 WAL 로그가 저장되는 PV(Persistent Volume) 의 크기에 제약이 있어, 해당 Pod 가 중지되는 현상이 발생했습니다. 따라서 해결 방법을 찾아 기록하기 위해 이 글을 남깁니다.1. WAL 로그 크기 관리 기본 설정WAL 파일이 너무 많이 쌓이지 않도록 하려면, 다음 설정들을 postg..
[PostgreSQL] 데이터베이스를 물리적으로 다른 서버에 있는 동일 데이터베이스로 옮기는 방법
·
개발 (Development)/PostgreSQL
PostgreSQL 데이터베이스를 물리적으로 다른 서버에 있는 PostgreSQL 데이터베이스로 옮기는 방법에는 여러 가지가 있습니다. 목적과 환경에 따라 적절한 방법을 선택하면 됩니다.1. pg_dump와 pg_restore 사용 (가장 일반적)한 서버에서 데이터베이스를 백업(dump)하고, 다른 서버에서 이를 복원(restore)하는 방식입니다.백업 생성 (출발 서버)pg_dump -U [username] -h [출발 서버] -p [포트] -d [DB이름] -F c -f backup.dump-F c : PostgreSQL의 맞춤(custom) 형식으로 백업 (빠르고 유연함)-f backup.dump : 파일로 저장백업을 타겟 서버로 전송scp backup.dump user@[타겟 서버]:/경로/백업 ..
[PostgreSQL] PostgreSQL에서 SELECT 컬럼 수가 성능에 미치는 영향
·
개발 (Development)/PostgreSQL
PostgreSQL에서 SELECT 문을 작성할 때 조회하는 컬럼 수가 성능에 영향을 미칠 수 있습니다. 이번 포스팅에서는 컬럼 수가 많을 때 성능에 미치는 영향을 살펴보고, 이를 최적화하는 방법을 소개합니다.컬럼 수 증가가 성능에 미치는 영향1. 디스크 I/O 증가컬럼이 많아질수록 디스크에서 읽어야 할 데이터 양이 증가합니다.데이터가 캐시에 없다면 디스크 I/O가 증가하여 성능이 저하될 수 있습니다.2. 네트워크 대역폭 사용 증가조회 결과가 클수록 클라이언트로 전송되는 데이터도 많아집니다.네트워크 비용이 증가하며 애플리케이션 응답 시간이 늘어날 수 있습니다.3. 워크 메모리(Work Memory) 사용 증가정렬(SORT)이나 해시 조인(HASH JOIN) 시, 컬럼 수가 많으면 더 많은 메모리를 사용합..
[PostgreSQL] ASC 인덱스가 있는데 DESC 인덱스를 추가해도 될까?
·
개발 (Development)/PostgreSQL
PostgreSQL에서 특정 컬럼에 이미 ASC(오름차순) 인덱스가 존재하는 경우, DESC(내림차순) 인덱스를 추가로 생성해도 되는지 궁금했습니다. 운영중인 서비스에서 쿼리 성능 및 API 성능이 떨어지는 이슈가 발생해서 개선점을 찾는 중이었습니다. 최신 데이터를 빈번하게 조회하는 해당 서비스 및 테이블 특성 상 고려할 사항을 정리했습니다. 이번 포스트에서는 ASC 인덱스가 이미 존재할 때 DESC 인덱스를 추가로 생성해야 할지와 실행 계획을 통해 성능을 분석하는 방법을 알아보겠습니다.1. PostgreSQL에서 ASC와 DESC 인덱스의 관계PostgreSQL의 B-Tree 인덱스는 기본적으로 오름차순(ASC)과 내림차순(DESC)을 모두 지원합니다. 하지만 ORDER BY event_time DES..