SQL - 쿼리 실행 계획이란?
쿼리 실행 계획이란? 실행하려는 쿼리가 어떤 방식으로 실행되는지, 인덱스를 타는지 안타는지를 확인하는 것. 실행하려는 쿼리 앞에 EXPLAIN 키워드를 붙여 확인 가능함. 구문 EXPLAIN query; 예시 EXPLAIN SELECT * FROM articles; 결과 type: 데이터베이스...
쿼리 실행 계획이란? 실행하려는 쿼리가 어떤 방식으로 실행되는지, 인덱스를 타는지 안타는지를 확인하는 것. 실행하려는 쿼리 앞에 EXPLAIN 키워드를 붙여 확인 가능함. 구문 EXPLAIN query; 예시 EXPLAIN SELECT * FROM articles; 결과 type: 데이터베이스...
인덱스란? 특정 컬럼들의 데이터를 기반으로 생성되는 원본 테이블과는 별개의 특수한 자료 구조임. 지정된 컬럼의 값과 해당 값을 가진 실제 데이터 행의 위치(PK, 포인터 등)를 한 쌍으로 저장함. 인덱스 내부의 데이터는 항상 정렬된 상태를 유지함. B-Tree 알고리즘을 사용함. 인덱스가 붙어 있으면 ...
트리 자료구조란? 상위 노드와 하위 노드로 구성됨. 가장 상위에 위치한 노드를 루트(root)라고 함. 이진 트리란? 하위 노드를 2개까지 가질 수 있는 트리. 이진 탐색 트리: 왼쪽 하위 노드가 더 작은 값을 가지고 오른쪽 하위 노드가 더 큰 값을 가지는 것. 트리가 한쪽으로 치우치면 선형 탐색과 동일한 성능...
📚 오늘 배운 것 / 실행한 것 TIL 작성하기 영어 article 1개 해석 영어 5줄 일기 쓰기 영어 학원 숙제하기 테이블 서브쿼리, UNION, CASE문, 뷰(View) 공부 내용 정리 💡 오늘 느낀 점 오늘은 영어 article 해석, 영어 학원 숙제(단어암기), 영어 5줄 일기, SQL 테이블 서브쿼리, UNION...
뷰(View)란? 가상의 테이블을 의미함. 실제 데이터를 저장하지 않고, 미리 정의된 SELECT 쿼리를 저장해두는 개념임. 기본적으로 조회용 테이블로 사용됨. 구문 CREATE VIEW view_name AS SELECT ... 예시 CREATE VIEW v_notifications_send_status AS SELECT C...
CASE문이란? 특정 데이터를 조건에 맞게 동적으로 가공해줌. 프로그래밍에서 if-else문과 같은 역할을 수행함. CASE문은 아래와 같이 두 가지 유형으로 나뉨. 단순 CASE문 검색 CASE문 단순 CASE문 특정 하나의 컬럼이나 표현식의 값에 따라 결과를 다르게 하고 싶을 때 사용함. 구문 CASE column...
UNION이란? 서로 다른 SELECT문의 결과를 합칠 때 사용함. 두 결과를 합친 후에 완전히 중복되는 행은 자동으로 제거해서 고유값만 남게 함. 전체 결과를 정렬한 후 인접한 행들을 비교해서 중복을 찾아내는 과정을 거침. 데이터가 많으면 많을수록 오래걸림. UNION 사용 규칙 SELECT문 ...
성능 JOIN 서브쿼리보다 성능 상 더 좋거나 동일한 경우가 많음. 옵티마이저가 여러 테이블 간의 관계를 분석해서 최적의 실행 계획을 세울 수 있음. 인덱스 활용, 조인 순서 최적화, 병렬 처리 등이 가능하기 때문에 대용량 데이터일수록 유리함. 서브쿼리 서브쿼리는 단계적으로 실행됨. 내부 쿼리 결과를 완성해야 ...
테이블 서브쿼리란? 서브쿼리 결과가 하나의 독립된 가상 테이블처럼 사용됨. 서브쿼리 결과를 먼저 집합으로 만들어두고 메인 쿼리가 실행됨. 주로 복잡한 데이터를 단계적으로 가공해야할 때 매우 유용함. 서브쿼리 결과를 JOIN, WHERE, FROM절에서 활용 가능함. 인라인 뷰(inline view...
📚 오늘 배운 것 / 실행한 것 TIL 작성하기 영어 article 1개 해석 영어 5줄 일기 쓰기 영어 학원 숙제하기 상관 서브쿼리, SELECT절 서브쿼리 공부 내용 정리 💡 오늘 느낀 점 오늘은 영어 article 해석, 영어 학원 숙제(단어암기), 영어 5줄 일기, SQL 상관 서브쿼리, SELECT절에서 사용되는 서...