블로그 글
박재성 선생님이 개발 블로그에 쓴 글입니다.
![[실습] 인덱스 직접 설정해보기 / 성능 측정해보기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2bd11062-ff07-80c6-8d39-ee15369f6bcc-8db89e66fb73dd3b.webp&w=3840&q=75)
[실습] 인덱스 직접 설정해보기 / 성능 측정해보기
✅ 인덱스 직접 설정해보기 / 성능 측정하고 비교해보기 아래의 구성과 동일하게 테이블을 셋팅해보고, 인덱스를 설정해보자. 테이블 생성 100만 건의 랜덤 데이터 삽입 데이터 조회해보기 SQL문 실행 시 걸리는 소요 시간 측정하기 인덱스 설정하기 데이터
![[실습] 멀티 컬럼 인덱스 직접 설정해보기 / 작동방식 이해하기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2bd11062-ff07-80bc-8499-eb4161671d22-51ddb3942792a6b5.webp&w=3840&q=75)
[실습] 멀티 컬럼 인덱스 직접 설정해보기 / 작동방식 이해하기
✅ 멀티 컬럼 인덱스 직접 설정해보기 테이블 생성 더미 데이터 생성 멀티 컬럼 인덱스 생성 멀티 컬럼 인덱스 생성 잘 됐는 지 확인하기 ✅ 데이터 조회할 때 인덱스를 어떻게 활용하는 지 과정 이해하기 아래 SQL문을 실행시킬 때 멀티 컬럼 인덱스를 어
![[실습] 2023년 주문 데이터 조회하는 SQL문 튜닝하기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2bd11062-ff07-80ba-b4df-f0d98c006899-5ad30c6665ba2d87.webp&w=3840&q=75)
[실습] 2023년 주문 데이터 조회하는 SQL문 튜닝하기
✅ 특정 유저의 2023년 주문 데이터 조회하기 기본 테이블 셋팅 더미 데이터 추가 기존 SQL문 성능 조회해보기 실행 계획 조회해보기 성능 개선해보기

실행 계획에서 type 의미 분석하기 (const, range, ref)
✅ const : 1건의 데이터를 바로 찾을 수 있는 경우 조회하고자 하는 1건의 데이터를 헤매지 않고 단번에 찾아올 수 있을 때 const가 출력된다. 그러다보니 고유 인덱스 또는 기본 키를 사용해서 1건의 데이터만 조회한 경우에 const가 출력
![[실습] 특정 부서에서 최대 연봉을 가진 사용자들 조회하는 SQL문 튜닝하기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2bd11062-ff07-808a-9304-eb6df5d3250b-7303867d2bbd61de.webp&w=3840&q=75)
[실습] 특정 부서에서 최대 연봉을 가진 사용자들 조회하는 SQL문 튜닝하기
✅ 특정 부서에서 최대 연봉을 가진 사용자들 조회하기 테이블 생성 100만 건의 랜덤 데이터 삽입 기존 SQL문 성능 체크하기 실행 계획 조회해보기 인덱스 추가하기 성능 측정해보기
![[실습] 좋아요 많은 순으로 게시글 조회하는 SQL문 튜닝하기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2bd11062-ff07-8082-8a75-ed9da3ea6519-da778c094a1c7d7c.webp&w=3840&q=75)
[실습] 좋아요 많은 순으로 게시글 조회하는 SQL문 튜닝하기
✅ 좋아요 많은 순으로 게시글 조회하기 기본 테이블 셋팅 더미 데이터 추가 성능 개선해야 할 SQL문 실행 계획 조회해보기 성능 개선 성능 개선 후 실행 계획
![[실습] ORDER BY문이 사용된 SQL문 튜닝하기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2bd11062-ff07-807c-87e7-e0ab2157095b-6f3395265cf82d65.webp&w=3840&q=75)
[실습] ORDER BY문이 사용된 SQL문 튜닝하기
✅ 예시 테이블 생성 100만 건의 랜덤 데이터 삽입 데이터 조회해서 성능 측정하기 실행 계획 조회해보기 성능 개선을 위한 인덱스 추가 성능 측정 [이것만은 꼭 기억해두자!] - ORDER BY는 시간이 오래걸리는 작업이므로 최대한 피해주는 것이 좋다

SQL문의 ‘실행 계획’ 사용해보기 (EXPLAIN)
✅ ’실행 계획’이란 ? 옵티마이저가 SQL문을 어떤 방식으로 어떻게 처리할 지를 계획한 걸 의미한다. 이 실행 계획을 보고 비효율적으로 처리하는 방식이 있는 지 점검하고, 비효율적인 부분이 있다면 더 효율적인 방법으로 SQL문을 실행하게끔 튜닝을 하
![[실습] WHERE문에 인덱스를 걸기 vs ORDER BY문에 인덱스를 걸기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2bd11062-ff07-807a-9c43-db2522844f05-361a434cbef78ae5.webp&w=3840&q=75)
[실습] WHERE문에 인덱스를 걸기 vs ORDER BY문에 인덱스를 걸기
✅ WHERE문에 인덱스를 걸기 vs ORDER BY문에 인덱스를 걸기 절대적인 건 없다. 실행 계획과 SQL 실행 시간을 보면서 어떻게 인덱스를 거는 게 나은지 찾아가는 게 정확하다. 한 번 예시를 보고 판단해보자. 테이블 생성 100만 건의 랜덤

멀티 컬럼 인덱스 (Mulitple-Column Index)란?
✅ 멀티 컬럼 인덱스란? 멀티 컬럼 인덱스란, 2개 이상의 컬럼을 묶어서 설정하는 인덱스를 뜻한다. 즉, 데이터를 빨리 찾기 위해 2개 이상의 컬럼을 기준으로 미리 정렬해놓은 표이다. ✅ 예시를 통해 멀티 컬럼 인덱스 의미를 직관적으로 이해해보자. 아
![[실습] 한 번에 너무 많은 데이터를 조회하는 SQL문 튜닝하기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2bd11062-ff07-8076-9993-cec6dfb4f7cc-985b7a99cd5ed635.webp&w=3840&q=75)
[실습] 한 번에 너무 많은 데이터를 조회하는 SQL문 튜닝하기
✅ 예시 테이블 생성 100만 건의 랜덤 데이터 삽입 데이터 조회해보기 ✅ 조회 결과 데이터의 개수 줄이기 실제 페이스북, 인스타그램의 서비스를 보더라도 한 번에 모든 게시글의 데이터를 불러오지 않는다. 스크롤을 내리면서 필요한 데이터를 그때그때 로딩
![[실습] HAVING문이 사용된 SQL문 튜닝하기](/_next/image?url=https%3A%2F%2Fapi.jscode.kr%2Fapi%2Fpost-images%2F2bd11062-ff07-8063-894a-ca86ee69f6f1-4c4ea9e090373ee3.webp&w=3840&q=75)
[실습] HAVING문이 사용된 SQL문 튜닝하기
✅ 예시 테이블 생성 100만 건의 랜덤 데이터 삽입 인덱스 생성하기 데이터 조회해서 성능 측정하기 실행 계획 조회해보기 성능 개선하기 실행 계획 조회해보기 [이것만은 꼭 기억해두자!] - HAVING문 대신에 WHERE문을 쓸 수 있는 지 체크해보자