2022.08.02 - TIL (워크밴치 쿼리 프로파일링)

Seong Hyeon Kim·2022년 8월 2일
0

TIL

목록 보기
30/31
post-thumbnail

Mysql의 워브벤치 에서는 쿼리문의 속도를 테스트 할 수 있다

명령어 모음

SELECT @@profiling;

SET profiling=1;

SHOW profiles

SHOW profile FOR QUERY 2;

순서


1. 프로파일링 시작전 기본 세팅 - 다음과 같이 입력후 번개아이콘클릭 ( 저 명령문을 입력후 번개아이콘을 누르면 해당 쿼리문을 실행한다는 의미다 )

SELECT @@profiling;



2. 프로파일링 진짜 시작 - 프로파일링 1은 활성화한다는 의미다.

SET profiling=1;



3. 원하는 쿼리문 입력후 번개아이콘 클릭 - 나의 경우 추천채용 조회 부분을 테스트하기 위해 실행을 한 후 터미널창에서 해당하는 부분을 복붙 해왓다

SELECT `posting`.`id`, `posting`.`companyName`, `posting`.`title`, `posting`.`deadline`, `career`.`id` AS `career.id`, `career`.`type` AS `career.type`, `city`.`id` AS `city.id`, `city`.`main` AS `city.main`, `city`.`sub` AS `city.sub`, `companyType`.`id` AS `companyType.id`, `companyType`.`type` AS `companyType.type`, `jobs`.`id` AS `jobs.id`, `jobs`.`main` AS `jobs.main`, `jobs`.`sub` AS `jobs.sub`, `jobs->posting_job`.`postingId` AS `jobs.posting_job.postingId`, `jobs->posting_job`.`jobId` AS `jobs.posting_job.jobId` FROM `postings` AS `posting` LEFT OUTER JOIN `careers` AS `career` ON `posting`.`careerId` = `career`.`id` LEFT OUTER JOIN `cities` AS `city` ON `posting`.`cityId` = `city`.`id` LEFT OUTER JOIN `companyTypes` AS `companyType` ON `posting`.`companyTypeId` = `companyType`.`id` INNER JOIN ( `posting_jobs` AS `jobs->posting_job` INNER JOIN `jobs` AS `jobs` ON `jobs`.`id` = `jobs->posting_job`.`jobId`) ON `posting`.`id` = `jobs->posting_job`.`postingId` WHERE (`posting`.`companyTypeId` = 2);



4. SHOW profiles 를 입력후 번개아이콘 클릭 - 내가 SET profiling=1; 로 세팅하고 난 이후 테스트했던 쿼리문의 속도에 대한 기록들을 볼수 있다.

여기서는 내가 기존에 했던 기록들이 전부 나와서 총 5개가 나와있다. 일반적으로는 처음이라면 2개가 맞을것이다.

SHOW profiles

Duration 을 보면 2번 쿼리의 속도는 0.059초 , 4번 쿼리의 속도는 0.018초 로 차이가 있는데 이후에 같은 쿼리문이더라도 코드를 수정해서 페이지네이션을 적용하기 전과 적용한 후의 결과이며,

페이지네이션을 적용해보니 다음과같이 속도가 빨라진것을 확인 할 수 있다.



5. 해당 쿼리의 세부적인 속도를 체크하고 싶으면 SHOW profiles의 쿼리 넘버를 입력한다.

SHOW profile FOR QUERY 2;

6. 모든 작업이 끝나면 SET 비활성화를 해준다

SET profiling=0;
profile
삽질도 100번 하면 요령이 생긴다. 부족한 건 경험으로 채우는 백엔드 개발자

0개의 댓글