Today I Learned/컴퓨터기초

인덱스, 트랜잭션, 무결성

하나719 2023. 8. 23. 18:00
반응형

인덱스

테이블의 검색 속도를 향상시키기 위한 자료구조

  • 장점: 검색 속도 향상
  • 단점
    • 인덱스를 저장하기 위한 추가적인 공간 필요
    • 잘못 사용할 경우 오히려 비효율적인 검색

인덱스로 사용하면 좋은 컬럼

  • 규모가 작지 않은 테이블
  • 자주 inser, update, delete가 발생하지 않는 컬럼 → 자주 변경이 발생하지 않는 컬럼, 유지비용 절감
  • join , where, order by 에 자주 사용되는 컬럼 → 정렬, 검색, 조인에서 효율을 높일 수 있음
  • 데이터의 중복도가 낮은 컬럼

예를 들어 검색 조건에 자주 사용되는 주문 번호, 사용자 ID, 날짜 조건 등등이 포함되는데 인덱스의 생성, 업데이트, 삭제등에 오버헤드가 발생할 수 있기 때문에 필요한 인덱스만 잘 설정하고 데이터베이스의 사용 패턴과 요구사항을 고려하여 결정하는 것이 중요함

트랜잭션과 무결성

트랜잭션: 데이터베이스에서의 하나의 논리적 기능을 수행하기 위한 작업의 단위 → 즉 여러개의 쿼리를 하나로 묶는 단위

  • ACID 특징
    • 원자성 (all or nothing): 모든 일이 수행되거나 되지 않음
      • 계좌이체 과정에서 이체했는데 오류 발생한 경우 이체도, 수신도 모두 되지 않음
      • 계좌이체 과정에서 이체에 성공한 경우 이체, 수신 모두 성공함
      → 이체만 되거나 수신만 되는 한가지만 수행되는 케이스 발생 X → 이 두가지는 무조건 같이 수행되도록 트랜잭션이 만들어져야함
      • 커밋 / 롤백으로 트랜잭션 관리
    • 일관성: 데이터베이스의 모든 값들이 가지는 조건, 규칙
      • 잔고가 0원이면 계좌이체를 할 수 없음
    • 독립성: 트랜잭션 수행시 서로 끼어들지 못함
    • 지속성: 성공적으로 수행된 트랜잭션은 영원히 유지되어야 함 (시스템 장애시 복구하는 회복기능 있어야함)
      • 체크섬,저널링, 롤백등의 기능

무결성: 데이터의 정확성, 일관성, 유효성을 유지하는 것

  • 개체 무결성
  • 참조 무결성
  • 고유 무결성
  • null 무결성
반응형