✅ const : 1건의 데이터를 바로 찾을 수 있는 경우 조회하고자 하는 1건의 데이터를 헤매지 않고 단번에 찾아올 수 있을 때 const가 출력된다. 그러다보니 고유 인덱스 또는 기본 키를 사용해서 1건의 데이터만 조회한 경우에 const가 출력
✅ 특정 부서에서 최대 연봉을 가진 사용자들 조회하기 테이블 생성 100만 건의 랜덤 데이터 삽입 기존 SQL문 성능 체크하기 실행 계획 조회해보기 인덱스 추가하기 성능 측정해보기
✅ 좋아요 많은 순으로 게시글 조회하기 기본 테이블 셋팅 더미 데이터 추가 성능 개선해야 할 SQL문 실행 계획 조회해보기 성능 개선 성능 개선 후 실행 계획
✅ 예시 테이블 생성 100만 건의 랜덤 데이터 삽입 데이터 조회해서 성능 측정하기 실행 계획 조회해보기 성능 개선을 위한 인덱스 추가 성능 측정 [이것만은 꼭 기억해두자!] - ORDER BY는 시간이 오래걸리는 작업이므로 최대한 피해주는 것이 좋다
✅ ’실행 계획’이란 ? 옵티마이저가 SQL문을 어떤 방식으로 어떻게 처리할 지를 계획한 걸 의미한다. 이 실행 계획을 보고 비효율적으로 처리하는 방식이 있는 지 점검하고, 비효율적인 부분이 있다면 더 효율적인 방법으로 SQL문을 실행하게끔 튜닝을 하
✅ WHERE문에 인덱스를 걸기 vs ORDER BY문에 인덱스를 걸기 절대적인 건 없다. 실행 계획과 SQL 실행 시간을 보면서 어떻게 인덱스를 거는 게 나은지 찾아가는 게 정확하다. 한 번 예시를 보고 판단해보자. 테이블 생성 100만 건의 랜덤
✅ 멀티 컬럼 인덱스란? 멀티 컬럼 인덱스란, 2개 이상의 컬럼을 묶어서 설정하는 인덱스를 뜻한다. 즉, 데이터를 빨리 찾기 위해 2개 이상의 컬럼을 기준으로 미리 정렬해놓은 표이다. ✅ 예시를 통해 멀티 컬럼 인덱스 의미를 직관적으로 이해해보자. 아
✅ 예시 테이블 생성 100만 건의 랜덤 데이터 삽입 데이터 조회해보기 ✅ 조회 결과 데이터의 개수 줄이기 실제 페이스북, 인스타그램의 서비스를 보더라도 한 번에 모든 게시글의 데이터를 불러오지 않는다. 스크롤을 내리면서 필요한 데이터를 그때그때 로딩
✅ 예시 테이블 생성 100만 건의 랜덤 데이터 삽입 인덱스 생성하기 데이터 조회해서 성능 측정하기 실행 계획 조회해보기 성능 개선하기 실행 계획 조회해보기 [이것만은 꼭 기억해두자!] - HAVING문 대신에 WHERE문을 쓸 수 있는 지 체크해보자
✅ 부서별 최대 연봉을 가진 사용자들 조회하기 테이블 생성 100만 건의 랜덤 데이터 삽입 기존 SQL문 성능 체크하기 실행 계획 조회해보기 성능 개선해보기