티스토리 뷰

반응형

엔지니어일을 하면서 고객들이 필요한 데이터를 요구를 하는 경우가 종종있다. 정말 많은 로그가 싸인 테이블은 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
링크
«   2025/01   »
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
글 보관함