Ocean_
꾸준한 프로그래밍
Ocean_
전체 방문자
오늘
어제
  • 분류 전체보기 (174)
    • About Me (4)
    • 우아한테크코스 (27)
    • C & LINUX (50)
    • Operating System (12)
    • Database (25)
    • Computer Vision (0)
    • Problem Solving (0)
      • Programmers (0)
      • BOJ (0)
    • 코코코딩공부 (44)
      • Spring (12)
      • JAVA (14)
      • 디자인 패턴 (4)
      • 책 읽기 (4)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • C
  • 우아한테크코스
  • 자바
  • OperatingSystem
  • 프로세스
  • 우테코5기
  • 트랜잭션
  • 우아한형제들
  • 리눅스
  • 블랙잭
  • 원시값 포장
  • 우아한테크코스5기
  • 정규화
  • DB
  • 백준
  • Operating System
  • 인덱스
  • C++
  • 우테코 체스
  • 1259
  • Spring
  • BOJ
  • 데이터 조작어
  • 우테코
  • 운영체제
  • OS
  • signal
  • SIGINT
  • bean
  • Linux

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Ocean_

꾸준한 프로그래밍

[Database] 인덱스
Database

[Database] 인덱스

2023. 2. 8. 18:05

DB 물리적 저장

실제 데이터 저장

  • 보조기억장치

가장 많이 사용되는 장치

  • 하드디스크
  • 데이터를 읽을때 액세스 암이 이동하는시간, 주기억장치로 읽어오는 시간에 영향을 받음

액세스 시간

액세스 시간 = SEEK TIME + ROTATIONAL DELAY + TRANSFER TIME

요청 ~ 주기억장치로 로드되는 시간

 

Client Connectors

  • mysql 서버 접근을 위해 App에서 사용하는 것

Connection Pool

  • Client 를 sql 연결

Pluggable Storage Engines

  • 데이터 저장 & 추출 (mylSAM,InnoDB) 사용

InnoDB 엔진 DB 파일

데이터 파일

  • 사용자 데이터와 개체를 저장
  • 테이블과 인덱스로 구성
  • 확장자는 *.ibd

폼파일

  • 테이블에 대한 각종 정보와 테이블 구성 필드, 데이터타입 정보 저장
  • db구조등의 변경사항있을때 자동으로 업데이트 됨

인덱스와 B-tree

인덱스

  • 도서의 색인이나 사전과 같이 데이터를 쉽고 빠르게 찾을수있도록 만든 데이터 구조

B-TREE

  • balanced & 검색시간이 작다

인덱스의 특징

  • 인덱스는 테이블에서 한 개 이상의 속성을 이용하여 생성함
  • 빠른 검색과 함께 효율적 레코드 접근 가능
  • 순서대로 정렬된 속성,데이터 위치만 보유해서 테이블보다 작은 공간 차지
  • 저장 값들은 테이블의 부분집합
  • 일반적으로 B-tree 형태의 구조를 가짐
  • 데이터 수정,삭제 변경 발생 시 인덱스 재구성 필요

한개이상속성, 효율적레코드접근,작은공간,부분집합,btree, 인덱스재구성

 

B TREE B+ TREE
키값 중복 X 가지, 리프 키값이 중복 O
순차탐색 X 순차탐색 O
가지,리프 모두 DATA 리프만 DATA
검색만 가지노드 모두 INDEX
  검색 + DATA처리

 

 

mysql 인덱스는 클러스터,보조 인덱스로 나뉘며 모두 b-tree 인덱스 기본

 

클러스터 인덱스

  • TABLE 생성 시 DBMS가 무조건 만듦
  • 키 값에 의한 동등 및 범위검색에 유리 → 키 값 검색 유리
  • 범위검색 유리 → 정렬되어있어서 용이
  • 행 데이터를 인덱스로 지정한 열에 맞춰 자동 정렬
  • 인덱스 자체에 data가 저장되어 있음
  • 테이블당 1개

SECONDARY 인덱스

빈번하게 처리되는 질의문에서 WHERE 절 이후 조건을 인덱스화

DATA를 접근할 수 있는 포인터들이 저장되어있다.

 

클러스터 인덱스

  • 기본키에 대하여 클러스터 인덱스를 생성한다
  • 기본키 지정없으면 UNIQUE 속성에 대해 클러스터 인덱스 생성
  • 기본키,UNIQUE 없으면 자체 생성 행번호로 클러스터 인덱스 생성

보조 인덱스

  • 클러스터 인덱스가 아닌 모든 인덱스는 보조 인덱스
  • 보조인덱스 각 레코드는 속성과 키본키 속성값을 갖고 있다.
  • 보조인덱스 검색해서 기본키 속성 찾은 후 클러스터 인덱스로 가 해당 레코드를 찾는다.
  • 특정키 값 찾는 검색은 성능 보장하지만, 범위검색은 보장 못함

 


숭실대학교 Database 강의를 수강 후 정리하였습니다.

'Database' 카테고리의 다른 글

[Database] 관계와 관계타입  (0) 2023.02.10
[Database] 데이터 모델링  (0) 2023.02.09
[Database] 뷰  (0) 2023.02.07
[Database] 부속 질의  (0) 2023.02.06
[Database] SQL 내장 함수  (0) 2023.02.05
    'Database' 카테고리의 다른 글
    • [Database] 관계와 관계타입
    • [Database] 데이터 모델링
    • [Database] 뷰
    • [Database] 부속 질의
    Ocean_
    Ocean_
    dongVeloper

    티스토리툴바