Programing Language/SQL
-
MySQL DATETIME 성능 최적화 완벽 가이드Programing Language/SQL 2025. 6. 13. 21:10
🚀 핵심 원칙: 인덱스를 타게 하라!❌ 인덱스 못 타는 나쁜 예-- MONTH(), YEAR() 함수 사용 → 인덱스 무력화WHERE MONTH(order_date) = 10WHERE YEAR(order_date) = 2023WHERE DATE(created_at) = '2023-10-15'-- 문자열 연산 → 인덱스 무력화 WHERE DATE_FORMAT(order_date, '%Y-%m') = '2023-10'✅ 인덱스 타는 좋은 예-- 범위 조건 사용 → 인덱스 활용WHERE order_date >= '2023-10-01' AND order_date = '2023-10-15' AND created_at 📅 날짜별 최적화 패턴1. 특정 월 조회 (10월 데이터)-- ❌ 느린 방법 (함수 사용)W..
-
프로그래머스_대여 기록이 존재하는 자동차 리스트 구하기Programing Language/SQL 2025. 6. 13. 20:46
https://school.programmers.co.kr/learn/courses/30/lessons/157341#qnaCAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 자동차 종류가 '세단'인 자동차들 중 10월에 대여를 시작한 기록이 있는 자동차 ID 리스트를 출력하는 SQL문을 작성해주세요. 자동차 ID 리스트는 중복이 없어야 하며, 자동차 ID를 기준으로 내림차순 정렬해주세요.1. 성능 최적화 버전(where, exists)CAR_RENTAL_COMPANY_CAR에서 조건에 맞는 CAR_ID 가져오도록 설계EXISTS 함수단순하게 괄호 안에 조건을 사용하는지 확인함JOIN과는 다르게 데이터 중복이 생기지 않음EXISTS (..