SQL - 트랜잭션의 격리 수준이란?
동시성의 문제 트랜잭션이 만약 격리성을 보장하지 않는다면 다양한 동시성 문제가 발생할 수 있음. 대표적인 문제들 더티 리드(Dirty Read): 한 트랜잭션이 아직 COMMIT 하지 않은 수정 중인 데이터를 다른 트랜잭션이 읽는 것을 의미함. 반복 불가능 읽기(Non-Repeatable Read): 한 트랜잭션에서 똑같은 SELECT 쿼리...
동시성의 문제 트랜잭션이 만약 격리성을 보장하지 않는다면 다양한 동시성 문제가 발생할 수 있음. 대표적인 문제들 더티 리드(Dirty Read): 한 트랜잭션이 아직 COMMIT 하지 않은 수정 중인 데이터를 다른 트랜잭션이 읽는 것을 의미함. 반복 불가능 읽기(Non-Repeatable Read): 한 트랜잭션에서 똑같은 SELECT 쿼리...
트랜잭션이란? 여러 작업을 하나의 논리적인 단위로 묶은 것을 의미함. 트랜잭션 내 모든 작업이 모두 성공하면 반영(COMMIT) 하나라도 실패하면 전부 취소(ROLLBACK) 작업의 신뢰성을 높여줌. ACID 속성 트랜잭션이 신뢰성을 갖추기 위해 반드시 지켜야하는 4가지 속성. Atom...
📚 오늘 배운 것 / 실행한 것 TIL 작성하기 영어 article 1개 해석 영어 5줄 일기 쓰기 영어 학원 숙제하기 복합 인덱스, 제약 조건 관련 내용 정리 💡 오늘 느낀 점 오늘은 영어 article 해석, 영어 학원 숙제(단어암기), 영어 5줄 일기, 복합 인덱스, 제약 조건 관련 내용을 정리하였다. 오늘 해석한 ar...
예전글에서 간략하게 다뤘었던 내용을 보충하는 글임. CHECK 제약 조건이란? 컬럼에 들어갈 수 있는 값의 범위나 조건을 직접 지정할 때 사용함. 컬럼에 INSERT, UPDATE가 일어날 때 지정된 조건식이 참인지 검사함. 거짓이면 입력을 거부하고 에러를 발생시킴. 사용 예시 CREATE TABLE ...
ON DELETE / ON UPDATE DB는 외래키 제약 조건이 걸려 있는 상위 데이터의 삭제나 수정을 막는 것(RESTRICT)이 기본값임. 가장 안전한 정책임. 상위 테이블의 데이터가 삭제되면 그 데이터를 참조하는 하위 테이블의 데이터도 같이 삭제되도록 옵션을 줄 수 있음. 옵션 종류 ...
인덱스의 단점 저장 공간: 원본 테이블과는 별개로, B-Tree 구조를 가진 물리적인 파일로 디스크에 저장됨. 인덱스를 생성하면 그만큼의 추가 저장 공간이 필요함. 쓰기 성능 저하: 인덱스는 SELECT의 속도를 높이는 대신 쓰기 작업(INSERT, UPDATE, DELETE)의 성능을 저하시킴. ...
복합 컬럼 인덱스란? 두 개 이상의 컬럼을 묶어서 하나의 인덱스를 만드는 것을 말함. 다중 조건 쿼리의 성능을 최적화하기 위해 사용됨. WHERE절에서 사용되는 컬럼의 순서가 성능을 좌우함. 복합 인덱스 생성 구문 CREATE INDEX index_name ON table_name (column1, col...
📚 오늘 배운 것 / 실행한 것 TIL 작성하기 영어 article 1개 해석 영어 5줄 일기 쓰기 영어 학원 숙제하기 트리 자료 구조 공부 내용 정리 인덱스 관련 내용, 쿼리 실행 계획 분석 공부 내용 정리 💡 오늘 느낀 점 오늘은 영어 article 해석, 영어 학원 숙제(단어암기), 영어 5줄 일기, 트리 자료구조 ...
커버링 인덱스란? 쿼리에 필요한 모든 컬럼을 포함하고 있는 인덱스를 뜻함. 랜덤 I/O를 줄여 성능을 향상시킴. 기본적으로 보조 인덱스는 해당 컬럼의 데이터와 기본키(PK) 값을 한 쌍으로 저장하여 인덱스를 탈 경우 컬럼의 데이터와 매핑되어 있는 기본키값을 통해 원본 데이터를 조회하게 되는데, 이렇게 인...
단일 컬럼 인덱스 활용 인덱스를 사용하는 상황은 아래와 같음. 동등 비교(=), JOIN 범위 검색(BETWEEN, >, <, LIKE 등) ORDER BY 정렬 동등 비교 인덱스 적용 X 예시 EXPLAIN SELECT * FROM articles WHERE title = 'SQL 인덱스 완벽 정리'; 결과 t...