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 |