[혼공SQL] chapter 6. 인덱스 확인문제

여정이·2024년 8월 2일
0

혼자 공부하는 SQL

목록 보기
21/28

06-1. 인덱스 개념을 파악하자

1. 다음은 인덱스의 개념 설명입니다. 가장 옳은 것을 하나 고르세요.

  1. 인덱스는 INSERT/UPDATE/DELETE문을 빠르게 처리합니다.
  2. 인덱스는 SELECT문을 빠르게 처리합니다.
  3. 인덱스는 CREATE INDEX문을 빠르게 처리합니다.
  4. 인덱스는 CREATE DATABASE문을 빠르게 처리합니다.

정답 : 2. 인덱스는 SELECT문을 빠르게 처리합니다.



2. 다음은 인덱스의 장점 및 단점입니다. 가장 거리가 먼 것을 하나 고르세요.

  1. 인덱스가 많다고 무조건 좋은 것은 아닙니다.
  2. 인덱스는 검색하는 속도를 빠르게 합니다.
  3. 인덱스는 추가적인 공간이 필요하지 않습니다.
  4. 인덱스를 잘 활용하면 전반적인 시스템의 성능이 향상됩니다.

정답 : 3. 인덱스는 추가적인 공간이 필요하지 않습니다.
인덱스를 생성하기 위해서는 데이터베이스의 약 10%정도에 해당되는 공간이 별도로 필요하다.



3. 다음은 인덱스 종류과 관련된 설명입니다. 가장 거리가 먼 것을 하나 고르세요.

  1. 클러스터형 인덱스는 영어사전과 비슷한 개념입니다.
  2. 보조 인덱스는 일반 책의 찾아보기와 비슷한 개념입니다.
  3. 클러스터형 인덱스는 기본 키를 설정하면 자동 생성됩니다.
  4. 보조 인덱스는 NOT NULL을 설정하면 자동 생성됩니다.

정답 : 4. 보조 인덱스는 NOT NULL을 설정하면 자동 생성됩니다.



4. 다음 인덱스와 관련된 설명 중 가장 거리가 먼 것을 하나 고르세요.

  1. 중복된 값을 허용하는 인덱스를 고유 인덱스라고 부릅니다.
  2. Primary Key로 지정하면 자동으로 인덱스가 생성됩니다.
  3. Unique로 지정하면 자동으로 인덱스가 생성됩니다.
  4. SHOW INDEX 문으로 인덱스 정보를 확인할 수 있습니다.

정답 : 1. 중복된 값을 허용하는 인덱스를 고유 인덱스라고 부릅니다.



5. 다음은 클러스터형 인덱스에 관련된 설명입니다. 거리가 먼 것을 2개 고르세요.

  1. Primary Key로 지정하면 자동으로 생성됩니다.
  2. Unique로 지정하면 자동으로 생성됩니다.
  3. 클러스터형 인덱스가 생성된 열로 자동으로 정렬됩니다.
  4. 테이블 당 1개 이상을 설정할 수 있습니다.

정답 : 2. Unique로 지정하면 자동으로 생성됩니다, 4. 테이블당 1개 이상을 설정할 수 있습니다.
4 : 클러스터형 인덱스는 테이블 당 1개만 만들 수 있다.





06-2. 인덱스의 내부 작동

1. 다음은 트리와 관련된 용어입니다. 거리가 먼 것을 하나 고르세요.

  1. 트리의 제일 상단의 뿌리를 루트라고 합니다.
  2. 트리의 줄기를 중간이라고 합니다.
  3. 트리의 끝에 달린 잎을 리프라고 합니다.
  4. 트리의 일부분을 잘라낸 것을 가지라고 합니다.

정답 : 4. 트리의 일부분을 잘라낸 것을 가지라고 합니다.


2. 각 설명이 의미하는 것을 관련 용어와 연결해보세요.

  1. 노드 중 제일 상위 노드를 말합니다.
  2. 노드 중 가운데 낀 노드를 말합니다.
  3. 노드 중 제일 마지막 노드를 말합니다.
  4. 16KB 크기의 최소한의 저장 단위입니다.

정답 : 1:루트 노드, 2:중간 노드, 3:리프 노드, 4:페이지


3. 다음 설명에서 빈 칸에 공통으로 들어갈 용어를 쓰세요.

  1. 인덱스를 구성하게 되면 데이터의 변경 작업(INSERT, UPDATE, DELETE)시에 성능이 나빠지는 단점이 있습니다. 특히 INSERT작업이 일어날 때 더 느리게 입력될 수 있는데요, 이유는 ( )이라는 작업이 발생하기 때문입니다. ( ) 작업이 일어나면 MySQL이 느려지고 너무 자주 일어나면 성능에 큰 영향을 줍니다.

정답 : 페이지 분할


4. 다음은 인덱스 구조에 관련된 내용입니다. 거리가 먼 것을 2개 고르세요.

  1. 클러스터형 인덱스가 없으면 데이터를 입력한 순서대로 저장됩니다.
  2. 클러스터형 인덱스를 생성하면 데이터를 해당 열의 내림차순으로 정렬됩니다.
  3. 보조 인덱스를 생성하면 데이터는 해당 열을 기준으로 오름차순 정렬됩니다.
  4. 클러스터형 인덱스가 보조 인덱스보다 검색 속도가 더 빠릅니다.

정답 : 2. 클러스터형 인덱스를 생성하면 데이터를 해당 열의 내림차순으로 정렬됩니다, 3. 보조 인덱스를 생성하면 데이터는 해당 열을 기준으로 오름차순 정렬됩니다.
2 : 클러스터형 인덱스를 인덱스로 지정하면 오름차순으로 정렬한다.
3 : 보조 인덱스는 생성해도 정렬되지 않는다.





06-3. 인덱스의 실제 사용

1. 다음은 인덱스를 생성하는 CREATE INDEX에 대한 설명입니다. 거리가 먼 것을 1개 고르세요.

  1. UNIQUE를 사용하면 중복되지 않는 고유 인덱스가 만들어집니다.
  2. 인덱스의 이름은 idx테이블이름 형식으로 고정되어 있습니다.
  3. ASC는 오름차순 인덱스를 만듭니다.
  4. DESC는 내림차순 인덱스를 만듭니다.

정답 : 2. 인덱스의 이름은 idx테이블이름 형식으로 고정되어 있습니다.
인덱스 이름은 사용자가 지정할 수 있다.


2. 각 설명이 의미하는 것을 관련 용어와 연결해보세요.

  1. 인덱스를 생성하는 SQL
  2. 인덱스를 제거하는 SQL
  3. 테이블에 생성된 인덱스 이름과 열을 확인하는 SQL
  4. 인덱스의 할당된 크기를 확인하는 SQL

정답 : 1:CREATE INDEX, 2:DROP INDEX, 3:SHOW INDEX, 4:SHOW TABLE STATUS


3. 다음은 인덱스를 생성하는 세부적인 내용에 대한 설명입니다. 거리가 먼 것을 2개 고르세요.

  1. 클러스터형 인덱스와 보조 인덱스를 동시에 한 테이블에 생성할 수 없습니다.
  2. 이미 중복된 값이 있는 열에 CREATE UNIQUE INDEX 문을 사용하면 중복 데이터는 제거됩니다.
  3. 고유 보조 인덱스를 생성한 후에는 해당 열에 동일한 값을 입력할 수 없습니다.
  4. 중복 데이터가 많은 열에는 인덱스를 만들어도 큰 효과가 없습니다.

정답 : 1. 클러스터형 인덱스와 보조 인덱스를 동시에 한 테이블에 생성할 수 없습니다, 2. 이미 중복된 값이 있는 열에 CREATE UNIQUE INDEX 문을 사용하면 중복 데이터는 제거됩니다.

1: 클러스터형 인덱스와 보조 인덱스는 함께 만들 수 있다.
2: 이미 중복된 값이 있는 열에 CREATE UNIQUE INDEX 문을 사용하면 오류가 발생한다.



4. 다음은 실행 계획에 관련된 설명입니다. 거리가 먼 것을 2개 고르세요.

  1. MySQL 워크벤치의[Execution Plan] 창은 SQL을 실행하기 전에 확인할 수 있습니다.
  2. Full Table Scan은 인덱스를 사용하지 않았다는 의미입니다.
  3. 인덱스를 사용하면 'Index Scan'이라고 표시됩니다.
  4. 인덱스가 있어도 Full Table Scan을 할 수 있습니다.

정답 : 1. MySQL 워크벤치의[Execution Plan] 창은 SQL을 실행하기 전에 확인할 수 있습니다, 3. 인덱스를 사용하면 'Index Scan'이라고 표시됩니다.



5. 다음은 인덱스의 결론입니다. 거리가 먼 것을 2개 고르세요.

  1. 인덱스는 행 단위에 생성됩니다.
  2. WHERE 절에서 사용되는 열에 인덱스를 만들어야 합니다.
  3. 데이터의 중복도가 높으면 인덱스가 효과적입니다.
  4. 사용하지 않는 인덱스는 제거하는 것이 좋습니다.

정답 : 1. 인덱스는 행 단위에 생성됩니다, 3. 데이터의 중복도가 높으면 인덱스가 효과적입니다.
1 : 인덱스는 열 단위에 생성된다.
3 : 데이터의 중복도가 높으면 인덱스는 비효율적이다.

0개의 댓글