CS/Database(10)
-
[CS 스터디] 5주간의 데이터베이스 스터디 회고
목차JSCODE 모의면접 신청 계기스터디 진행 방식잘한 점아쉬운 점앞으로는 이렇게 JSCODE 모의면접 신청 계기1월은 나태해지기 쉬운 시기라 생각한다. 혼자 CS 공부를 한다고 했지만, 흐지부지될 가능성이 있어 모의면접 스터디를 신청하게 되었다. 특히 데이터베이스 관련 공부를 하고 프로젝트에 적용하고 있는 중이었어서 더 심화된 부분을 학습하고 싶었다.또한, 글로 된 지식에서 벗어나 상대방에게 말로 전달하는 능력도 기르고 싶었다. 스터디 진행 방식매주 1번 비대면으로 만나서 4명이서 진행하였다. 1명은 면접자 2명은 면접관 1명은 타임키퍼였다. 15분 동안 질문과 답변을 진행하고 5분 동안은 피드백을 하면서 잘한 점과 개선할 점을 정리해서 공유하였다. 잘한 점 스터디에 한 번도 빠지지 않고 참여했다. 스..
2025.02.03 -
[업무에 바로 쓰는 SQL 튜닝] 4.2.6 다수 쿼리를 UNION 연산자로만 합치는 나쁜 SQL문
목차❌ 문제의 SQL 문😎 실행 계획 살펴보기⭕ UNION ALL 연산자로 변경해 보자🚀 정리 ❌ 문제의 SQL 문요구사항 : 성이 Baba이면서 성별이 M인 사원 데이터와 성이 Baba이면서 성별이 F인 사원 데이터를 합해서 조회하는 쿼리를 작성해 주세요.select 성별, 사원번호 from 사원 where 성별 = 'M' and 성 = 'Baba'unionselect 성별, 사원번호 from 사원 where 성별 = 'F' and 성 = 'Baba'; 수행 결과+--------+--------------+| 성별 | 사원번호 |+--------+--------------+| M | 11937 || M | ..
2024.10.07 -
[업무에 바로 쓰는 SQL 튜닝] 4.2.5 습관적으로 중복을 제거하는 나쁜 SQL 문
목차❌ 문제의 SQL 문😎 실행 계획 살펴보기⭕ DISTINCT 키워드를 제거해 보자🚀 정리 ❌ 문제의 SQL 문요구사항 : 사원의 사원번호, 이름, 성, 그리고 부서 관리자의 부서번호를 중복 없이 조회하는 쿼리를 작성해 주세요.select distinct 사원.사원번호, 사원.이름, 사원.성, 부서관리자.부서번호from 사원join 부서관리자 on (사원.사원번호 = 부서관리자.사원번호); 수행 결과총 24건이며 소요 시간은 0초에 가깝게 나왔다.😎 실행 계획 살펴보기1. id 값이 둘 다 1이므로 서로 조인하고 있다.2. 부서관리자 테이블의 type이 index로 인덱스 풀 스캔을 하고 있다.3. 사원 테이블의 type은 eq_ref으로 사원번호(PK)를 사용해 1건의 데이..
2024.10.04 -
[업무에 바로 쓰는 SQL 튜닝] 4.2.4 열을 결합하여 사용하는 나쁜 SQL 문
목차❌ 문제의 SQL 문😎 실행 계획 살펴보기⭕ 열을 결합하는 과정을 제거하고, 열을 분리해 보자🚀 정리 ❌ 문제의 SQL 문요구사항 : 사원 테이블에서 성별의 값과 1칸의 공백, 성의 값을 모두 결합한 결과가 ‘M Radwan’인 데이터를 조회하는 쿼리를 작성해 주세요.- CONCAT 함수는 여러 문자열을 연결하는 데 사용SELECT * FROM 사원 WHERE CONCAT(성별, ' ', 성) = 'M Radwan'; 출력 :총 102건이고 소요 시간은 약 0.13초가 나왔다. 😎 실행 계획 살펴보기사원 테이블에만 접근하여 데이터를 가져오고 있다. 문제의 SQL문에서는 WHERE 조건절로 데이터에 접근하는 반면, 실행계획을 확인해 보니 type 항목이 ALL 테이블 풀 스캔을 하고 있..
2024.10.02 -
[업무에 바로 쓰는 SQL 튜닝] 4.2.3 형변환으로 인덱스를 활용하지 못하는 나쁜 SQL 문
목차❌ 문제의 SQL 문😎 실행 계획 살펴보기⭕ 형변환이 발생하지 않도록 SQL을 수정해 보자🚀 정리 ❌ 문제의 SQL 문요구사항: 급여 테이블에서 현재 유효한 급여 정보만 조회하는 쿼리를 작성해 주세요.사용여부 열의 값이 1인 데이터가 유효한 급여 정보입니다.SELECT COUNT(*) FROM 급여 WHERE 사용여부 = 1; 출력:1건이 출력되었고 데이터는 총 42,842건이며 sql 소요시간은 약 0.48초로 나타났다. 😎 실행 계획 살펴보기key항목이 I_사용여부로 출력되고, type항목이 index이므로 인덱스 풀 스캔 방식으로 테이블의 데이터를 찾고 있다. 그리고 filtered항목이 10이므로 MySQL엔진으로 가져온 데이터 중 10%를 추출해서 최종 데이터를 출력했다는 것..
2024.09.13 -
[업무에 바로 쓰는 SQL 튜닝] 4.2.2 사용하지 않는 함수를 포함하는 나쁜 SQL문
목차❌ 문제의 SQL 문😎 실행 계획 살펴보기⭕ 불필요한 IFNULL() 함수를 제거해 보자🚀 정리 ❌ 문제의 SQL 문요구사항 : 사원 테이블에서 성별 기준으로 몇 명의 사원이 있는지 확인하는 쿼리문을 작성해 주세요.SELECT IFNULL(성별, 'NO DATA') AS 성별, COUNT(*) 건수 FROM 사원 GROUP BY IFNULL(성별, 'NO DATA') 만약 성별의 값이 NULL이라면 NO DATA라고 출력할 수 있도록 IFNULL() 함수를 사용하여 구현했다.2개의 행이 출력되었고, 약 0.12초가 소요되었다. 😎 실행 계획 살펴보기I_성별_성 인덱스로 인덱스 풀 스캔 방식을 수행하며, Extra 항목이 Using temporary로 임시 테이블을 생성한다는 것을 알 ..
2024.09.10