[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..
[PostgreSQL] 쿼리 성능 최적화 과정
·
개발 (Development)/PostgreSQL
PostgreSQL에서 특정 쿼리의 성능을 개선하기 위해 인덱스 추가, 서브쿼리 최적화, JOIN 최적화 등의 작업을 수행한 과정을 공유합니다.1. 성능 개선 전 쿼리다음은 성능 개선 전의 PostgreSQL 쿼리입니다.WITH data_main AS ( SELECT model_type, event_time, object_id, performance_score, param_details, similarity_metric, similarity_value, prediction_name, prediction_value, category_name, category_percentage FROM sample_table WHERE event_time BETWEEN ..
[PostgreSQL] 특정 데이터베이스에 접속하기
·
개발 (Development)/PostgreSQL
PostgreSQL 데이터베이스에 특정 DB(test_db)로 접속하는 방법을 소개합니다. 다양한 환경에서 손쉽게 접속할 수 있는 명령어와 코드 예제를 정리했습니다.1. psql 명령어 사용 (터미널)터미널에서 psql 명령어를 사용해 PostgreSQL에 접속할 수 있습니다.기본 형식:psql -h [호스트] -p [포트] -U [사용자명] -d test_db예시:psql -h localhost -p 5432 -U myuser -d test_db-h : 호스트 주소 (기본은 localhost)-p : 포트 번호 (기본은 5432)-U : 사용자명-d : 데이터베이스 이름 (test_db)접속 후 프롬프트(test_db=>)가 나타나면 SQL 쿼리를 실행할 수 있습니다.Tip: PostgreSQL이 설치..