📌 Index Scan VS Table Scan(Full Table Search)Index Scan인덱스를 이용하여 필요한 데이터만 조회 ➡️ 인덱스 ➡️ 데이터Table Scan (Full Table Scan)테이블의 모든 데이터를 처음부터 끝까지 훑음 인덱스 없이 전체 검색 ➡️ Index Scan이 일반적으로 더 빠르다, 하지만 인덱스가 없거나 조건에 맞는 데이터가 많으면 Full Table Scan이 발생할 수 있다.📌 Clustered Indext VS Non -Clustered(Secondary) Index Clustered IndexNon-Clustered Index데이터 저장 방식데이터 자체가 인덱스의 순서에 맞게 물리적으로 저장인덱스 별도의 구조에 저장데이터 위치를 참조인덱스와 데이터..
SQL
CTE: Common Table Expression테이블을 표현하는 공통적인 방법이며, 기존의 View, Table로 사용하던 것들을 대신할 수 있다.서브쿼리를 마치 뷰처럼 사용하므로 더 편리하고, 복잡한 쿼리가 더 간결하고 간편하게 사용가능하다.➡️ 계속해서 조인을 걸던 방식보다 이렇게 하면 한눈에 보기 편하다 !WITH 절with절은 AS를 통해 서브쿼리에이름을 붙여줄 수 있다. CTE를 표현하기 위한 구문이다.임시테이블을 만드는 점에서 View와 유사하다. 하지만 View는 만들어놓으면 여러 쿼리에서 쓸 수 있지만, With절은 한번 실행할 쿼리문 내에서만 사용할 수 있다.!자주 사용하는 테이블이다 ! ➡️ View이때만 사용한다 ➡️ With, 서브쿼리WITH cte1 AS (SELECT a,..
트랜잭션하나의 작업 단위이다. 여러 SQL 작업을 하나의 묶음으로 처리해서, 모두 성공하거나 모두 실패하도록 보장함START TRANSACTION ➡️ 트랜잭션 시작COMMIT ➡️ 트랜잭션 확정 (디스크에 반영)ROLLBACK ➡️ 트랜잭션 취소 (변경 내용 원복)세션데이터베이스에 연결된 하나의 연결(커넥션) 단위각 세션은 독립적으로 트랜잭션을 관리한다.➡️ 세션마다 별도의 트랜잭션 상태를 가짐. 단일 쿼리의 경우기본적으로 Auto Commit 모드이기 때문에 쿼리가 하나일 경우 START TRANSACTION을 명시할 필요가 없다. ➡️ 쿼리가 성공하면 자동 커밋, 실패하면 롤백 됨 ORMORM(Object Relational Mapping) 프레임워크는 내부적으로 여러개 쿼리를 실행함개발자는 직접 ..

MySQL은 크게 MySQL Engine과 Storage Engine으로 나뉜다. MySQL Engine(CPU역할 -> 실질적인 연산 담당) : SQL 파싱, 최적화, 실행 계획 수립 및 처리 담당한다. Storage Engine: 실제 데이터 저장 및 접근 담당한다. Handler API: MySql 엔진이 스토리지 엔진에 쓰기 또는 읽기 시 요청시 사용하는 APIMySQL 쿼리 실행 과정Stoarage engine을 제외하고 모두 MySQL Engine이다. 동작과정은 아래의 순서와 같다 !Connection Handler접속되는 각각의 세션을 만들고 관리해준다. (메모리 할당해주든,, 등등 -> 메모리가 있어야 캐시가 생김)1. Query cacheClient가 SQL 요청을 보내면 제일 처음엔..