데이터베이스 개발 가이드라인
GitLab 개발 시 데이터베이스 관련 리뷰, 마이그레이션, 디버깅, 모범 사례 및 ClickHouse 활용 방법을 설명합니다.
데이터베이스 리뷰 # 작업 중인 기능의 설계 단계에서, 데이터베이스 관련 변경 사항을 추가하는 경우 주의를 기울이세요. 쿼리를 추가하거나 수정하는 경우, 리뷰 단계 후반에 예상치 못한 문제가 발생하지 않도록 초기에 explain 플랜을 확인하세요. 쿼리 최적화나 explain 플랜 이해에 도움이 필요하면 언제든지 #database 에서 지원을 요청하세요. 리뷰를 위한 데이터베이스 머지 리퀘스트를 작성하는 경우, 데이터베이스 리뷰 가이드라인 을 확인하세요. 데이터베이스 관련 변경 사항, 마이그레이션 및 복잡한 SQL 쿼리에 대한 소개를 제공합니다. 데이터베이스 리뷰어이거나 리뷰어가 되고자 한다면, 데이터베이스 변경 리뷰 소개 를 확인하세요. 업그레이드 # 버전 업그레이드 타임라인 데이터베이스 업그레이드 DDL 잠금 도구 # EXPLAIN 플랜 이해하기 EXPLAIN 출력 시각화를 위한 explain.depesz.com 또는 explain.dalibo.com pgFormatter — PostgreSQL SQL 구문 정리 도구 db:check-migrations job 데이터베이스 마이그레이션 파이프라인 마이그레이션 # 필수 중단점 추가 마이그레이션에서 다운타임 방지 배치 백그라운드 마이그레이션 가이드라인 새 모델 생성을 포함한 일반 마이그레이션 생성 마이그레이션 삭제 마이그레이션 유형별 차이 다중 데이터베이스를 위한 마이그레이션 안전한 SQL 마이그레이션 작성을 위한 마이그레이션 스타일 가이드 테이블 파티셔닝 배포 후 마이그레이션 가이드라인 및 작성 방법 데이터베이스 마이그레이션 실행 SQL 쿼리 작업을 위한 SQL 가이드라인 테이블 교체 Rails 마이그레이션 테스트 가이드 Rails 마이그레이션 테스트 작성 시기와 방법 데이터베이스 레코드 중복 제거 테이블 파티셔닝 # 개요 날짜 범위 해시 정수 범위 목록 디버깅 # 데이터베이스 접근 데이터베이스 초기화 데이터베이스 문제 해결 및 디버깅 SQL 쿼리 출처 추적: Verbose Query Logs 를 사용한 Rails 콘솔에서의 추적 Marginalia 를 활용한 쿼리 주석 사용 모범 사례 # 데이터베이스 인덱스 추가 다운타임 없이 외래 키 제약 추가 Cells 호환성 CHECK 제약 조건 업그레이드 전 백그라운드 마이그레이션 확인 클라이언트 측 연결 풀 제약 조건 명명 규칙 열거형(enum) 생성 데이터 레이아웃 및 접근 패턴 효율적인 IN 연산자 쿼리 고정 항목 모델 외래 키 및 연관관계 해시 인덱스 배치 방식으로 테이블에 삽입 배치 가이드라인 배치 방식으로 테이블 반복 로드 밸런싱 NOT NULL 제약 조건 테이블 칼럼 순서 지정 페이지네이션 가이드라인 페이지네이션 성능 가이드라인 오프셋 페이지네이션 최적화 다형성 연관관계 쿼리 횟수 제한 쿼리 성능 가이드라인 데이터 직렬화 단일 테이블 상속 SHA1 해시를 바이너리로 저장 문자열과 Text 데이터 타입 다중 값 업데이트 데이터베이스 기능 검증 사례 연구 # 데이터베이스 사례 연구: 라벨로 필터링 데이터베이스 사례 연구: 네임스페이스