728x90
728x90
SMALL
💡 요약
- 테이블을 집합으로 생각하기
- 데이터 조회 시 효율성 높이기
- LIMIT 걸고 조회
- 파티션을 필터 조건으로 걸고 조회
- SELECT * 지양
- LIKE 사용 시 % 제한적으로 사용
- 데이터 타입 잘 확인하기
- 비교 연산자 사용 시 타입 확인
- 상대적으로 작은 사이즈의 Column에 함수 사용
- JOIN 시 유의할 점
- JOIN 하는 테이블 간의 관계 고려하기
- 데이터 중복이 있는지 확인
- 여러 가지 쿼리 방식 고려
- 가독성 높이기
🌳 테이블을 집합으로 생각하기
- 최대한 작게 만들어 놓고 JOIN 하기
- 필터링 후 JOIN 처리 속도 < JOIN 후 필터링 처리 속도
🌳 데이터 조회 시 효율성 높이기
LIMIT 걸고 조회
- 테이블에 어떤 데이터가 있는지 조회할 때 → LIMIT을 걸어 조회하는 것이 안전
- 행 수가 굉장히 많은 대용량 데이터일 경우, 처리 속도의 차이가 큼
파티션을 필터 조건으로 걸고 조회
- 파티션이 있는 테이블인지 확인 → WHERE 조건으로 파티션 지정 필수
- (ex) 유저 행동 로그 → 쌓이는 데이터 양이 많음 → 파티션 나눠서 저장(일/시간 단위)
SELECT * 지양
- Column이 매우 많은 테이블은 전체 조회 지양 (ex) 상품 메타 데이터
- 알고 싶은 Column만 지정하여 조회
LIKE 사용 시 % 제한적으로 사용
- % : 임의의 문자열
- 임의의 문자열 몇 개가 반복되어도 조회 → 연산량이 매우 커짐
- 규칙을 최대한 좁혀서 사용
🌳 데이터 타입 잘 확인하기
비교 연산자 사용 시 타입 확인
- SQL에서는 ‘묵시적 형 변환’을 지원
- 비교하고자 하는 두 값이 다른 타입일 때, DB가 알아서 타입을 맞춘 후 비교
- 형 변환에 소요되는 시간만큼 쿼리가 비효율적으로 됨
- 정확한 타입을 확인하지 않은 채 쿼리가 복잡해지면,
- 쿼리의 결과가 원하는대로 나오지 않았을 때, 문제의 원인을 찾는 데 시간이 오래 걸림
- 비교연산자를 사용할 때 → 타입을 먼저 확인한 후 동일한 타입의 값으로 비교해야 함
상대적으로 작은 사이즈의 Column에 함수 사용
- WHERE 절에서 왼쪽 Column에 함수 적용 지양
🌳 JOIN 시 유의할 점
JOIN 하는 테이블 간의 관계 고려하기
- 테이블 간의 관계
- 1:1 관계 → 왼쪽 테이블의 행 하나가 오른쪽 테이블의 행 하나에 대응
- (ex) 직원 인사 정보 테이블 - 팀별 소속 테이블 → 한 명의 직원이 하나의 팀에 소속
- (ex) 직원 인사 정보 테이블 - 팀별 소속 테이블 → 한 명의 직원이 하나의 팀에 소속
- 1:n → 왼쪽 테이블의 행 하나가 오른쪽 테이블의 행 여러 개에 대응
- (ex) 고객 정보 테이블 - 클릭/구매 이력 테이블
- (ex) 고객 정보 테이블 - 클릭/구매 이력 테이블
- n:n → 왼쪽 테이블의 행 여러 개가 오른쪽 테이블의 행 여러 개에 대응
- (ex) 학생 테이블 - 동아리 테이블
데이터 중복이 있는지 확인
- 중복 확인 없이 실행할 경우
- 큰 테이블의 경우 속도 매우 느려짐
- 의도했던 것과 다른 결과가 나올 수 있음
여러 가지 쿼리 방식 고려
- 같은 결과라도 상황에 따라 가장 효율적인 방식 사용
🌳 가독성 높이기
- 서브쿼리보다 WITH 구문이 가독성이 좋음
- WITH절 사용 시 각 블록 이름을 잘 지정해야 함
- 쿼리가 복잡해지면 중간중간 주석 작성
본 내용은 프로그래머스 '데이터 분석 데브코스' 를 수강하며 작성한 내용입니다.
728x90
728x90
SMALL
'🐥 Education > 프로그래머스 데이터분석데브코스' 카테고리의 다른 글
[TIL] 프로그래머스 데이터 분석 데브코스|Week3|SQL|다양한 데이터 타입 (1) | 2023.12.07 |
---|---|
[TIL] 프로그래머스 데이터 분석 데브코스|Week3|SQL|테이블 결합 + 다양한 SQL 함수 (1) | 2023.12.06 |
[TIL] 프로그래머스 데이터 분석 데브코스|Week3|SQL|SQL 기초 구문 (1) | 2023.12.05 |
프로그래머스 데이터 분석 데브코스|Week2|2주차 회고 (0) | 2023.12.01 |
[TIL] 프로그래머스 데이터 분석 데브코스|Week2|Excel|결측치 (1) | 2023.12.01 |