(1) 테이블 생성(2) 테이블 세부 정보(3) 테이블 데이터 삽입(4) 테이블 데이터 업데이트(5) 테이블 데이터 업데이트(6) 테이블 데이터 삭제다수의 세션이 같은 데이터에 수정 or 접근 시 lock 적용(1) autocommit OFF & start transa
Lock이란?아마존과 같은 다수의 사용자가 접속할때, concurrency를 관리하기 위해서 lock 사용예시) E-commerce 웹사이트첫번째 세션 - 물품 재고를 채우는 E-commerce 판매자두번째 & 세번째 세션 - 물품을 사는 E-commerce 구매자테이
1. 실행 계획 수행 1) 기본 실행 계획 (1) 기본 실행 계획 수행 (2) 기본 실행 계획 항목 분석 1) ID - 실행 순서를 표시 조인할 때는 똑같은 ID가 표시된다. ID의 숫자가 작을수록 먼저 수행된 것이고 ID가 같은 값이라면 두 개 테이블의 조인
1) 기본 키를 변형하는 나쁜 SQL 문 (1) 현황분석 Type항목이 ALL로 테이블 풀 스캔 방식이며, 인덱스를 사용하지 않고 테이블에 바로 접근 사원번호가 PK임에도 SUBSTRING / LENGTH와 같이 가공하여 작성했으므로, 풀 스캔 수행됨 (2) 튜닝
1) 작은 테이블이 먼저 조인에 참여하는 나쁜 SQL 문 (1) 현황분석 부서 테이블에 먼저 접근 후 UI_부서명 인덱스를 활용해 인덱스 풀 스캔 상대적으로 큰 크기의 부서사원매핑 테이블은 I부서번호 인데스로 인덱스 스캔 수행, 이때 rows 항목이 4만건으로 인덱
1) 처음부터 모든 데이터를 가져오는 나쁜 SQL 문 (1) 현황분석 id가 1인 두개 행에 먼저 접근, 사원테이블이 드라이빙 테이블 derived2 테이블이 드리븐 테이블 derived2테이블은 id가 2이고 select_type 항목이 DERIVED로 작성된 세
1) 인덱스 없이 작은 규모의 데이터를 조회하는 나쁜 SQL 문 (1) 현황분석 사원 테이블 풀 스캔 및 스토리지 엔진에서 가져온 전체 데이터 중 조건절 Extra : Using where 출력 (2) 문제점 1 건의 데이터를 가져오고자 테이블 풀 스캔 방식 비