실습 데이터 세팅
교재에 나와있는 github 링크에서 sql 파일을 다운받았다.
실습을 위해 도커로 MySQL 8.4버전 컨테이너로 띄움
- 명령어 : docker run --name mysql-study -e MYSQL_ROOT_PASSWORD=password -d -p 3306:3306
docker 환경에 mysql 8.4버전 실행중이고, 받은 파일을 아래 명령어를 통해 docker 컨테니어 내부로 복사해줬다.
- 명령어 : docker cp [다운받은 복사할 폴더] [컨테이너id]:/init-db
그럼 아래처럼 docker 컨테이너 접속하고 cd init-db 후 ls해보면 실습 sql파일이 복사되었다.
mysql -u root -p < ./data_setting.sql 실행해주면 끝!
(아래는 미리생성해준 mysql_study DB에 넣어보려고 했는데, sql이 이미 tuning이라는 DB에 들어가도록 되어있나보다.)
데이터 들어왔는지 확인! 준비 끝!
실행 계획 수행
실행 계획 확인 방법 : SQL 문 앞에 EXPLAIN, DESCRIBE, DESC 를 붙인다.
- id : 실행 순서를 표시하는 숫자
- join할 때에는 똑같은 id로 표시
- id가 작으면 먼저 수행된 것. id가 같으면 join이 수행된 것
- select_type
- SELECT 문이 FROM절에 위치했는지, FROM절에 위치했는지, 서브쿼리인지, UNION 절로 묶인 SELECT문 인지 등의 정보를 제공
- SIMPLE : UNION 이나 내부쿼리가 없는 SELECT 문
- PRIMARY : 서브쿼리가 포함된 SQL 문이 있을 때 첫번 째 SELECT 문에 해당하는 구문에 표시
'스터디 > 업무에 바로 쓰이는 SQL 튜닝' 카테고리의 다른 글
[업무에 바로 쓰는 SQL 튜닝] 4-4 열을 결합하여 사용하는 나쁜 SQL문 (1) | 2024.09.30 |
---|---|
[업무에 바로 쓰는 SQL 튜닝] 4-3 형변환으로 인덱스를 활용하지 못하는 나쁜 SQL 문 (0) | 2024.09.27 |
[업무에 바로 쓰는 SQL 튜닝] 4-2 사용하지 않는 함수를 포함하는 나쁜 SQL문 (0) | 2024.09.27 |
[업무에 바로 쓰는 SQL 튜닝] 4-1 기본키를 변형하는 나쁜 SQL문 (1) | 2024.09.24 |
[업무에 바로 쓰는 SQL 튜닝 ] 2장. 물리 엔진과 오브젝트 용어 (1) | 2024.09.11 |