티스토리 뷰
엔지니어일을 하면서 고객들이 필요한 데이터를 요구를 하는 경우가 종종있다. 정말 많은 로그가 싸인 테이블은 60G까지본적도 있다. 이렇게 대용량의 데이터를 조회하기 위해서 인덱스 사용법과 해석을 할줄 알아야한다는 생각이 들었다. 얕은 SQL 지식을 튜닝을 할 수 있을 정도까지 끌어올려보자!
Show index from 테이블명; 을 치면 아래의 그림이 생성된다.
1. Table : 테이블명 표기.
2. Non_unique : 인덱스가 중복된 값이 가능하면 1, 중복값이 허용되지 않는 UNIQUE INDEX이면 0을 표시함.
여기서 UNIQUE INDEX란?
유니크 인덱스란 중복값을 허용하지 않는 컬럼에 적용할 수 있는 인덱스이다. 예를 들어 주민등록번호는 사람별로 고유식별자 이므로 유니크 인덱스를 적용할 수 있다. 일단 유니크 인덱스를 적용하면 같은 값을 insert 할 수 없게 된다.
이러한 속성은 PK랑 매우 유사하지만 차이점이 있다.
|
Primary key |
Unique Index |
중복값 |
허용 안함 |
허용 안함 |
테이블 당 적용 개수 |
1개 |
여러 개 |
인덱스 |
Uinque Index |
Uinque Index |
Null 허용 |
허용 안함 |
허용 |
3. Key_name : 인덱스의 이름을 표시하며, 인덱스가 해당 테이블의 기본 키라면 PRIMARY로 표시함.
4. Seq_in_index : 멀티컬럼이 인덱스인 경우 해당 필드의 순서를 표시함.
5. Column_name : 해당 필드의 이름을 표시함.
6. Collation : 인덱스에서 해당 필드가 정렬되는 방법을 표시함.
7. Cardinality : 인덱스에 저장된 유일한 값들의 수를 표시함.
8. Sub_part : 인덱스 접두어를 표시함.
9. Packed : 키가 압축되는(packed) 방법을 표시함.
10. Null : 해당 필드가 NULL을 저장할 수 있으면 YES를 표시하고, 저장할 수 없으면 ''를 표시함.
11. Index_type : 인덱스가 어떤 형태로 구성되어 있는지 나타내며 MySQL은 대부분 Btree를 사용한다.
12. Comment : 해당 필드를 설명하는 것이 아닌 인덱스에 관한 기타 정보를 표시함.
13. Index_comment : 인덱스에 관한 모든 기타 정보를 표시함.
'DevOps > DB' 카테고리의 다른 글
[Redis] Docker-compose로 redis를 설치하기 (0) | 2024.05.03 |
---|---|
벡터 DB 비교 (0) | 2024.02.21 |
[mongoDB] 중복된 document 제거 (0) | 2023.02.23 |
스칼라쿼리 원리 (0) | 2021.02.06 |
- Total
- Today
- Yesterday
- 그리디
- 다이나믹프로그래밍
- 정보보안
- lightsail
- t-test
- springboot
- 코딩테스트
- synflooding
- 프로그래머스
- 카카오페이
- FastAPI
- 분산시스템
- Python
- 시간초과
- linux
- llm
- 보안기사
- 카카오페이면접후기
- 우선순위큐
- 정보보안기사
- 파이썬
- LangChain
- 리눅스
- t검정
- 자료구조
- 백준
- 딥러닝
- Ai
- java
- 보안
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |