업무에 바로 쓰는 SQL 튜닝 4장 정리
·
카테고리 없음
SQL문 단순 수정으로 쿼리 튜닝하기기본 키를 변형하는 나쁜 SQL 문사원번호가 1100으로 시작하면서 사원번호가 5자리인 사원의 정보 모두 출력하기AS-IS튜닝 전 SQL 문SELECT *FROM 사원WHERE SUBSTRING(사원번호, 1, 4) = 1100AND LENGTH(사원번호) = 5;0.168s 소요튜닝 전 실행 계획EXPLAIN SELECT *FROM 사원WHERE SUBSTRING(사원번호, 1, 4) = 1100AND LENGTH(사원번호) = 5;사원 테이블 하나만 존재하므로 최종 결과는 1개 행으로 출력type = ALL 이므로, 테이블 풀 스캔 방식을 사용하여 인덱스를 사용하지 않음 -> 필요 범위 접근이 아니라 비효율적일 수 있음rows = 299,246TO-BE튜닝 수행SE..
[LeetCode Hard] 185. Department Top Three Salaries
·
SQL 문제 풀이
테이블 정보 문제A company's executives are interested in seeing who earns the most money in each of the company's departments. A high earner in a department is an employee who has a salary in the top three unique salaries for that department.Write a solution to find the employees who are high earners in each of the departments. Return the result table in any order. The result format is in the following..
[프로그래머스 Level 4] 입양 시각 구하기 (2)
·
SQL 문제 풀이
테이블 정보 문제보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.  결과 예시  문제 풀이 (MySQL)SET @HOUR = -1;SELECT (@HOUR := @HOUR + 1) AS HOUR, (SELECT COUNT(HOUR(B.DATETIME)) FROM ANIMAL_OUTS B WHERE @HOUR = HOUR(B.DATETIME) ) AS COUNTFROM ANIMAL_OUTS ALIMIT 24; 위에 예시를 보다시피 7시부터 데이터가 존재한다.그러므로 단순히 HOUR(DATET..