2022-02-09

0209 MySQL 쿼리튜닝, 인덱스

 1. 쿼리튜닝 어디서 시작할까?

-> explain analyze

- 갑자기 time이 점프하는 지점에 주목하라

2. 인덱스

- 클러스터링 인덱스 : 물리적으로 모여있다

- primary key = 클러스터링 인덱스

- secondary index : primary키를 가리킨다

따라서 secondary 인덱스로 search하면 일단 secondary 인덱스 접근해서 -> primary key를 찾고 -> 실제 데이터의 물리적인 위치로 간다

3. 클러스터링 인덱스는- 물리적으로 모여있기 때문에. 어떤 키를 primary key로 하는가가 중요하다

- auto-increment로 primary key 잡으면. 그냥 넣는 순서대로 sequential하게 들어가므로 insert할때 비용이 적게 든다

- 만약에 uuid같은 값을 primary  key로 잡으면. 넣을때마다 데이터 순서의 조정이 필요하고. 페이지사이즈(MySQL의 경우, 16kb) 안에 넣기 위한 물리적인 조정이 계속필요하게 됨

- 데이터 분산이 일어나고, random I/O를 높여 read할때에도 성능이 떨어지게 된다. 


4. secondary index왜 필요한가?

- examined되는 쿼리 양을 줄이기 위하여

- sort비용을 줄이기 위하여

- find max/min비용을 줄이기 위하여등등.

댓글 없음:

댓글 쓰기

0328 fdisk, mkfs, mount, fstab

 1. 하드디스크를 붙인다. 2. fdisk -l로 하드디스크를 확인한다.  - interactiive한 커맨드모드 사용하여 (m) 붙인 하드디스크의 파티셔닝을 한다.  - 마지막에 w를 해야 실제로 반영이 된다.  3. mkfs를 하여 어떤 파일시스...