Index Quiz

MySQL 인덱스에 대한 지식을 테스트하고 향상시켜보세요!

문제 1 / 7

질문이 여기에 표시됩니다...

MySQL 인덱스 퀴즈 - 세트 G

총 7개 문제로 구성된 MySQL 인덱스 학습 퀴즈입니다.

문제 1. 다음과 같은 employees 테이블이 있다. ```sql CREATE TABLE employees ( emp_no INT NOT NULL, birth_date DATE NOT NULL, first_name VARCHAR(14) NOT NULL, last_name VARCHAR(16) NOT NULL, gender ENUM('M','F') NOT NULL, hire_date DATE NOT NULL, PRIMARY KEY (emp_no), ); CREATE INDEX ix_firstname ON employees (first_name ASC); ``` 다음 쿼리는 ix_firstname 인덱스를 활용하는가? ```sql SELECT * FROM employees ORDER BY first_name ASC LIMIT 4; ```

  • 활용한다
  • 활용하지 않는다

문제 2. 다음 employees 테이블이 있다 ```sql CREATE TABLE employees ( emp_no INT NOT NULL, birth_date DATE NOT NULL, first_name VARCHAR(14) NOT NULL, last_name VARCHAR(16) NOT NULL, gender ENUM('M','F') NOT NULL, hire_date DATE NOT NULL, PRIMARY KEY (emp_no), ); CREATE INDEX ix_firstname ON employees (first_name ASC); ``` 다음 쿼리는 ix_firstname 인덱스를 활용하는가? ```sql SELECT * FROM employees ORDER BY first_name DESC LIMIT 5; ```

  • 활용한다
  • 활용하지 않는다

문제 3. 다음 employees 테이블이 있다. ```sql CREATE TABLE employees ( emp_no INT NOT NULL, birth_date DATE NOT NULL, first_name VARCHAR(14) NOT NULL, last_name VARCHAR(16) NOT NULL, gender ENUM('M','F') NOT NULL, hire_date DATE NOT NULL, PRIMARY KEY (emp_no), ); CREATE INDEX ix_firstname ON employees (first_name ASC); ``` 다음 쿼리는 ix_firstname 인덱스를 스캔할 까? ```sql SELECT * FROM employees ORDER BY emp_no DESC LIMIT 4; ```

  • 활용한다
  • 활용하지 않는다

문제 4. 다음 t1의 테이블이 있다. ```sql CREATE TABLE t1 ( tid INT NOT NULL AUTO_INCREMENT, TABLE_NAME VARCHAR(64), COLUMN_NAME VARCHAR(64), ORDINAL_POSITION INT, PRIMARY KEY (tid) )ENGINE=InnoDB; ``` 해당 테이블에 6천만건의 레코드가 있다고 하였을 때 오름차순 조회 쿼리와 내림차순 조회 쿼리의 속도를 비교하시오. ```text ASC_QUERY : SELECT * FROM t1 ORDER BY tid ASC LIMIT 60030975,1; DESC_QUERY : SELECT * FROM t1 ORDER BY tid DESC LIMIT 60030975,1; ```

  • ASC_QUERY와 DESC_QUERY의 속도가 비슷하다.
  • ASC_QUERY의 속도가 더 빠르다.
  • DESC_QUERY의 속도가 더 빠르다.

문제 5. 다음 t1 데이터 테이블이 있다. ```sql CREATE TABLE t1 ( tid INT NOT NULL AUTO_INCREMENT, TABLE_NAME VARCHAR(64), COLUMN_NAME VARCHAR(64), ORDINAL_POSITION INT, PRIMARY KEY (tid) )ENGINE=InnoDB; ``` 다음과 같이 내림차순으로 tid와 COLUMN_NAME을 탐색하는 쿼리가 있다. ```sql SELECT tid, column_name FROM t1 ORDER BY COLUMN_NAME DESC LIMIT 11862915, 1 ``` 오름차순 인덱스와 내림차순 인덱스가 있을 때 각 인덱스 활용 시나리오의 효율을 비교하시오. ```sql CREATE INDEX column_name_asc on t1(column_name ASC); CREATE INDEX column_name_desc on t1(column_name DESC); ```

  • 오름차순 인덱스(column_name_asc)를 활용하는 것이 더 빠르다
  • 내림차순 인덱스(column_name_desc)를 활용하는 것이 더 빠르다
  • 두 인덱스 활용 속도에 큰 차이가 없다.

문제 6. 다음 test_icp 테이블이 있다. ```sql CREATE TABLE test_icp ( id INT PRIMARY KEY AUTO_INCREMENT, num INT, name VARCHAR(255), address VARCHAR(255), INDEX idx_num_name (num, name) ); ``` MySql 8.0 버전에서 다음 쿼리에 대하여 idx_num_name에 대한 활용계획으로 알맞은 것을 고르시오 ```sql SELECT * FROM test_icp WHERE num = 1 and name like '%q'; ```

  • (num =1) 을 인덱스 테이블에서 필터링하고, 테이블을 스캔하며, (name like '%q') 조건에 알맞는 행을 골라낸다.
  • (num=1) 과 (name like '%q')을 인덱스 테이블에서 필터링하고, 테이블에서 조건에 알맞는 행을 골라낸다.

문제 7. 다음 test_icp 테이블이 있다. ```sql CREATE TABLE test_icp ( id INT PRIMARY KEY AUTO_INCREMENT, num INT, name VARCHAR(255), address VARCHAR(255), INDEX idx_num_name (num, name) ); ``` MySql 8.0 버전에서 다음 쿼리에 대하여 idx_num_name에 대한 활용계획으로 알맞은 것을 고르시오 ```sql SET optimizer_switch = 'index_condition_pushdown=off'; SELECT * FROM test_icp WHERE num = 1 and name like '%q'; ```

  • (num =1) 을 인덱스 테이블에서 필터링하고, 테이블을 스캔하며, (name like '%q') 조건에 알맞는 행을 골라낸다.
  • (num=1) 과 (name like '%q')을 인덱스 테이블에서 필터링하고, 테이블에서 조건에 알맞는 행을 골라낸다.

다른 퀴즈 세트 보기