- 데이터베이스 검토
- 도구
- 마이그레이션
- 테이블 파티셔닝
- 디버깅
- 모범 사례
- 사례 연구
- GitLab 관리자를 위한 PostgreSQL 정보
- 확장을 위한 사용자 정보
- ClickHouse
- 잡다한 것들
데이터베이스 개발 지침
데이터베이스 검토
-
작업 중인 기능의 설계 단계에서 데이터베이스 관련 변경 사항을 추가하고 있는지 유의하세요. 쿼리를 추가하거나 수정하는 경우, 검토 단계에서 놀라움을 피하기 위해
explain
계획을 일찍부터 살펴보세요. -
언제든지 쿼리 최적화나
explain
계획 이해에 도움이 필요하면#database
에서 도움을 요청하세요. -
검토를 위해 데이터베이스 MR을 만드는 경우, 우리의 데이터베이스 검토 지침을 확인하세요.
이것은 데이터베이스 관련 변경 사항, 마이그레이션 및 복잡한 SQL 쿼리에 대한 소개를 제공합니다.
-
데이터베이스 검토자이거나 검토자가 되고 싶다면, 우리의 데이터베이스 변경 사항 검토 소개를 확인하세요.
도구
- EXPLAIN 계획 이해하기
-
EXPLAIN
의 출력을 시각화하기 위한 explain.depesz.com 또는 explain.dalibo.com - PostgreSQL SQL 구문을 아름답게 만드는 pgFormatter
- db:check-migrations job
- 데이터베이스 마이그레이션 파이프라인
마이그레이션
- 필수 정거장 추가하기
- 마이그레이션 중 다운타임 피하기
- 배치 백그라운드 마이그레이션 지침
- 정기 마이그레이션 생성하기, 새 모델 생성 포함
- 마이그레이션 삭제하기
- 다양한 유형의 마이그레이션
- 다양한 데이터베이스를 위한 마이그레이션
- SQL 마이그레이션을 안전하게 생성하기 위한 마이그레이션 스타일 가이드
- 테이블 파티셔닝
- 배포 후 마이그레이션 지침 및 마이그레이션 생성 방법
- 데이터베이스 마이그레이션 실행하기
- SQL 쿼리 작업을 위한 SQL 지침
- 테이블 교체하기
- Rails 마이그레이션 테스트 가이드
- Rails 마이그레이션 테스트 작성 시기 및 방법
- 데이터베이스 레코드 중복 제거하기
테이블 파티셔닝
디버깅
- 데이터베이스 접근하기
- 데이터베이스 리셋하기
- 데이터베이스 문제 해결 및 디버깅
- SQL 쿼리 출처 추적하기:
- Rails 콘솔에서 Verbose Query Logs 사용
- Marginalia와 함께 쿼리 주석 사용
모범 사례
- 데이터베이스 인덱스 추가하기
- 기존 열에 외래 키 제약 조건 추가하기
- 업그레이드 전에 백그라운드 마이그레이션 확인하기
- 클라이언트 측 연결 풀
- 제약 조건 명명 규칙
- 열거형 만들기
- 데이터 레이아웃 및 액세스 패턴
- 효율적인
IN
연산자 쿼리 - 외래 키 및 연관 관계
- 해시 인덱스
- 배치로 테이블에 삽입하기
- 배치 규칙
- 테이블을 배치로 반복하기
- 로드 밸런싱
NOT NULL
제약 조건- 테이블 열 정렬하기
- 다형성 연관 관계
- 쿼리 수 제한
- 쿼리 성능 가이드라인
- 데이터 직렬화하기
- 단일 테이블 상속
- SHA1 해시를 바이너리로 저장하기
- 문자열 및 텍스트 데이터 유형
- 여러 값 업데이트하기
- 데이터베이스 기능 확인하기
사례 연구
GitLab 관리자를 위한 PostgreSQL 정보
- 외부 PostgreSQL 서비스를 사용하여 GitLab 구성하기
- 확장을 위한 PostgreSQL 구성하기
- 데이터베이스 로드 밸런싱
- 다른 PostgreSQL 인스턴스로 GitLab 데이터베이스 이동하기
- Omnibus GitLab을 이용한 복제 및 장애 조치
- Omnibus GitLab을 사용한 독립 실행형 PostgreSQL
- PostgreSQL 문제 해결하기
- 번들된 PgBouncer 서비스 작업하기
확장을 위한 사용자 정보
GitLab 관리자에게는 확장을 위한 PostgreSQL 구성하기에 대한 정보가 제공되며, 주요 방법은 다음과 같습니다:
ClickHouse
- 소개
- GitLab 내 ClickHouse
- 쿼리 실행 최적화하기
- ClickHouse를 사용하여 GitLab 기능 재구성 1: 활동 데이터
- ClickHouse를 사용하여 GitLab 기능 재구성 2: Merge Request 분석
- ClickHouse의 계층형 스토리지