데이터베이스 개발 가이드라인
GitLab 개발 시 데이터베이스 관련 리뷰, 마이그레이션, 디버깅, 모범 사례 및 ClickHouse 활용 방법을 설명합니다.
데이터베이스 리뷰 # 작업 중인 기능을 설계하는 단계에서 데이터베이스 관련 변경을 추가하는지 늘 살핍니다. 쿼리를 추가하거나 수정한다면, 리뷰 후반에 예상치 못한 문제를 만나지 않도록 explain 플랜을 일찍 확인합니다. 쿼리 최적화나 explain 플랜 해석에 도움이 필요하면 언제든 #database 에 요청합니다. 리뷰를 받을 데이터베이스 MR을 만든다면 데이터베이스 리뷰 가이드라인 을 확인합니다. 이 문서는 데이터베이스 관련 변경, 마이그레이션, 복잡한 SQL 쿼리를 소개합니다. 데이터베이스 리뷰어이거나 리뷰어가 되고 싶다면 데이터베이스 변경 리뷰 입문 을 확인합니다. 업그레이드 # 버전 업그레이드 일정 데이터베이스 업그레이드 DDL 잠금 도구 # 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 사용 데이터베이스 쿼리 주석 사용 모범 사례 # 데이터베이스 인덱스 추가 다운타임 없이 외래 키 제약 추가 Cells와의 호환성 CHECK 제약 업그레이드 전 백그라운드 마이그레이션 확인 클라이언트 측 연결 풀 제약 이름 규칙 enum 생성 데이터 레이아웃과 액세스 패턴 효율적인 IN 연산자 쿼리 고정 항목 모델 LATERAL 조인으로 인덱스 탐색 강제 외래 키와 연관 해시 인덱스 테이블에 배치로 삽입 배치 처리 가이드라인 테이블을 배치로 순회 로드 밸런싱 NOT NULL 제약 테이블 칼럼 순서 페이지네이션 가이드라인 페이지네이션 성능 가이드라인 오프셋 페이지네이션 최적화 다형성 연관 쿼리 수 제한 쿼리 성능 가이드라인 데이터 직렬화 단일 테이블 상속 SHA1 해시를 바이너리로 저장 문자열과 Text 데이터 유형 여러 값 업데이트 데이터베이스 기능 확인 사례 연구 # 데이터베이스 사례 연구: 레이블로 필터링 데이터베이스 사례 연구: 네임스페이스 스토리지 통계