Index
(검색을 위해) 임의의 규칙대로 부여된, 임의의 대상을 가리키는 무언가
ex) 2학년 3반 21번, 서울시 송푸구 신청동 루터회관 05510, List<Object> objects ... objects.get(index)
IN DATABASE
데이터베이스는 내가 원하는 데이터를 어떻게 찾아오는 걸까?
왜 데이터가 많아질수록 점점 느려질까?
왜 조인만 수행하면 느릴까?
왜 쿼리가 느릴까?
Clustered vs Non -Clusterd
Clustered Index : 군집화된 인덱스
Cluster : 군집
Clustered : 군집화
*뭐가 군집? 인덱스와 데이터가 군집(정렬되어있다)
-> 범위 검색 아주 강력!, 삽입과 정렬비용이 커지면 아주 느리다.
순서대로
한테이블에 하나만
범위 검색 Good -> 공간 지역성
존재하는 PK 사이에 INSERT할 경우 대참사
-> 왜 Auto_Increment? 성능이슈
Non - Clusterd
순서 상관 없음(데이터를 임의순서로 저장)
한 테이블에 여러개
추가 저장 공간 필요 (약 10%)
INSERT시 추가 작업 필요(인덱스 생성)
Cardinality 카디널러티 -> 유일한 값이길 좋음
+심화
Explain aka. 실행계획
B- Tree, Page(Block) in InnoDB
Cardinallity
Composite key
innodb_buffer_pool_size
log_throttle_queries_not_using_indexes
www.youtube.com/watch?v=NkZ6r6z2pBg&list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&index=84
'Back-end > DB' 카테고리의 다른 글
테이블 권한 부여, 시노님 부여 (0) | 2021.08.02 |
---|---|
ORACLE DB의 내부 동작 과정 (0) | 2021.06.13 |