쿼리 실행 계획

@VERO
Created Date · 2023년 08월 11일 01:08
Last Updated Date · 2023년 08월 11일 01:08

트랜잭션

  • 논리적 작업 단위

transactional

ACID 속성

  • 원자성: 트랜잭션과 관련된 작업은 모두 실행되거나 모두 실패함
  • 일관성: 트랜잭션은 참조 무결성 등의 제약 조건을 위반하지 않고 유효한 상태에서 또 다른 유효한 상태로 변경함
  • 격리성: 트랜잭션은 다른 트랜잭션이 존재하지 않는 것처럼 서로 간섭 없이 수행되어야 한다.
  • 지속성: 트랜잭션 커밋 후에는 시스템이 중단되거나 장애가 발생해도 데이터가 그대로 유지되어야 한다.

@@autocommit 이 지정되면 statement 하나 당 커밋이 된다. 기본적으로는 1로 설정되어 있는 듯

격리 수준

  • 트랜잭션이 동시에 변경을 수행하고 쿼리를 수행할 때 성능과 안정성, 일관성 및 결과 재현성 간의 균형을 미세 조정하는 설정
    • 트랜잭션이 동시에 수행될 때 다른 트랜잭션에서 변경하거나 조회하는 데이터를 어디까지 볼 수 있도록 허용할 것인지에 대한 설정

인덱스

인덱스 구분

  • primary vs secondary
    • mysql 은 모든 key 에 대해 index 를 만든다.
  • key는 자료를 식별하는 값, index는 자료의 구조