MySQL(8)
-
5장 트랜잭션
문제1. InnoDB에서 인덱스 설계가 중요한 이유에 대해 설명해주세요.InnoDB는 MySQL에서 제공하는 잠금과 별개로 스토리지 엔진 내부에 레코드 기반 잠금 방식을 가지고 있습니다. 이 때 변경하려는 레코드 자체에 락을 거는 것이 아니라 검색한 인덱스의 레코드에 잠금을 걸기 때문에 같은 인덱스에 속한 모든 레코드에 락이 걸리게 됩니다. 그렇기 때문에 인덱스 설계를 통해 데이터 변경 시 락이 걸리는 범위를 줄일 수 있도록 해주어야 합니다.문제 2. GAP Lock에 대해 설명해주세요레코드와 바로 인접한 레코드 사이의 간격만 잠그는 것으로 레코드와 레코드 사이의 간격에 새로운 레코드가 생성되는 것을 제어합니다.문제 3. 격리 수준이 READ COMMITTED 인 상태에서 A 트랜잭션이 데이터를 변경 중..
2024.07.01 -
4장 아키텍처
문제1. 쿼리 수행 과정에 대해 설명해주세요쿼리 파서가 쿼리를 토큰으로 분리해 파서 트리를 생성합니다. 이 때 기본 문법 오류가 발견됩니다.이 후 전처리기가 파서 트리를 기반으로 각 토큰을 테이블 이름과 칼럼 이름, 내장 함수와 같은 개체와 매핑하여 구조적 문제가 있는지 확인합니다. 이 때 존재하지 않거나 권한상 사용할 수 없는 개체의 토큰이 걸러집니다.옵티마이저는 쿼리를 가장 최적화된 비용으로 처리할 수 있는 실행계획을 선택합니다. 실행 엔진은 옵티마이저에서 만들어진 계획대로 각 핸드러에게 요청하면 핸들러가 데이터를 디스크에 저장하거나 디스크로부터 읽어옵니다.문제2. MySQL 8.0버전부터는 메타데이터를 InnoDB에 테이블에 저장하도록 바뀌었는데 이렇게 했을 때의 장점은 무엇인가요MySQL 5.7버..
2024.07.01