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