본문 바로가기

독서/업무에 바로 쓰는 SQL 튜닝3

개념적인 튜닝용어 기초 용어오브젝트 스캔 유형테이블 스캔과 인덱스 스캔으로 구분테이블 스캔 : 인덱스를 거치지 않고 바로 디스크에 위치한 테이블 데이터에 접근테이블 풀 스캔인덱스 스캔 : 인덱스로 테이블 데이터에 접근인덱스 범위 스캔인덱스 풀 스캔인덱스 고유 스캔인덱스 루스 스캔인덱스 병합 스캔📈 테이블 풀 스캔인덱스를 거치지 않고 테이블에서 바로 처음부터 끝까지 훑는 방식WHERE 절의 조건문을 기준으로 활용할 인덱스가 없거나, 전체 데이터 대비 대량의 데이터가 필요할 때 수행된다.성능 측면에서는 부정적이다.인덱스 없이 사용하는 유일한 방식이다.📈 인덱스 범위 스캔인덱스 범위 기준으로 스캔한 뒤 테이블의 데이터를 찾아가는 방식SQL문에서 BETWEEN ~ AND 구문이나, , LIKE 구문 등 비교 연산 및 구문에 .. 2024. 1. 30.
논리적인 SQL 개념 용어 서브쿼리 위치에 따른 SQL 용어서브쿼리란 쿼리 안의 보조쿼리를 가르키는 용어다. 메인쿼리를 기준으로 내부에 서브쿼리가 어디에 위치하는지에 따라 부르는 용어가 달라진다.SELECT (SELECT ... FROM ...) -> SELECT 절 : 스칼라 서브쿼리FROM (SELECT ... FROM ...) -> FROM 절 : 인라인 뷰WHERE 컬럼명 IN (SELECT ... FROM ...) -> WHERE절 : 중첩 서브쿼리스칼라 서브쿼리서브쿼리가 반환하는 결과가 단일 값을 가지는 경우이다. 즉, 결과 값이 항상 1행 1열의 구조로 출력되어야 한다.메인쿼리 SELECT 절 목록이나 WHERE에 주로 사용된다.출력되는 데이터 건수가 1건이어야 하므로 집계함수가 자주 쓰인.. 2024. 1. 30.
물리 엔진과 오브젝트 용어 DB 엔진 용어1. 스토리지 엔진역할 : 스토리지엔진(InnoDB, MyISAM, Memory 등)은 사용자가 요청한 SQL로 DB에 저장된 디스크나 메모리에 필요한 데이터를 가져온다.선택 기준 : 데이터를 저장하는 방식에 따라 각각의 스토리지 엔진을 선택해서 사용한다.InnoDB : 데이터 일관성과 안정성이 중요한 OLTP(online transaction processing) 환경에서 사용. 일반적으로 온라인상의 트랜잭션 발생으로 데이터를 처리하는 OLTP 환경이 대다수이기 때문에 InnoDB를 자주 사용한다.MyISAM : 대량의 쓰기 트랜잭션이 발생할 때 사용Memory : 메모리 데이터를 로드해서 빠르게 데이터를 읽어야할 경우 사용2. MySQL 엔진역할 : 사용자가 요청한 SQL에 대한 문법검.. 2024. 1. 30.