전체 글(152)
-
14장 스토어드 프로그램
문제 1. 스토어드 프로시저의 파라미터 종류와 차이점을 말해주세요.IN 타입 : 입력 전용 파라미터OUT 타입 : 출력 전용 파라미터INOUT : 입출력 모두 가능문제 2. 일회성 이벤트를 등록하려면 ON SCHEDULE (A)를 사용하고, 반복성 이벤트를 등록하려면 ON SCHEDULE (B)를 사용한다.(A) : AT (B) : EVERY문제 3. 스토어드 프로그램의 입력 파라미터, DECLARE로 정의한 로컬 변수, 테이블 칼럼이 같은 이름을 가질 경우 우선순위를 말해주세요.DECLARE로 정의한 로컬 변수스토어드 프로그램의 입력 파라미터테이블 칼럼
2024.07.01 -
13장 파티션
문제 1. 파티션을 사용하는 이유단일 INSERT와 단일 또는 범위 SELECT의 빠른 처리데이터의 물리적인 저장소를 분리이력 데이터의 효율적인 관리문제 2. 다음과 같이 생성된 테이블에 입사 일자가 2001년부터 2005년 이하인 레코드를 가지는 파티션을 추가하는 SQL을 작성해주세요. CREATE TABLE employees ( id INT NOT NULL, first_name VARCHAR(30), last_name VARCHAR(30), hired DATE NOT NULL DEFAULT '1970-01-01’, ... ) PARTITION BY RANGE( YEAR(hired) ) ( PARTITION p0 VALUES LESS THAN (1991), ..
2024.07.01 -
10장 실행계획
문제 1. MySQL 8.0부터 인덱스되지 않은 칼럼들에 대해서도 데이터 분포도를 수집해서 저장하는데 이 정보를 무엇이라고 합니까?히스토그램문제 2. 일부 파티션만 접근해서 읽었을 때, 실행 계획에서 type이 ALL이라고 뜨는 이유는 무엇인가요파티션은 물리적으로 개별 테이블처럼 별도의 저장 공간을 가지기 때문에 해당 파티션을 풀 스캔할 경우 type이 ALL로 나옵니다.문제 3. 실행 계획에서 rows 칼럼이 나타낸 것은 무엇인가요?실행 계획의 효율성 판단을 위해 예측했던 레코드 건수쿼리를 처리하기 위해 얼마나 많은 레코드를 읽고 처리해야 하는지를 의미함문제 4. 이 쿼리는 salary 칼럼으로 만들어진 인덱스를 사용할 수 없습니다. 그 이유와 인덱스를 사용할 수 있도록 튜닝한 쿼리를 알려주세요.sel..
2024.07.01 -
9장 옵티마이저와 힌트
문제 1. 정렬해야 할 레코드 수가 소트 버퍼로 할당된 공간보다 큰 경우 어떻게 처리하나요?메모리의 소트 버퍼에서 정렬을 수행하고 그 결과를 임시로 디스크에 기록다음 레코드를 가져와서 다시 정렬해서 반복적으로 디스크에 임시 저장각 버퍼 크기만큼 정렬된 레코드를 다시 병합하면서 정렬 수행 ⇒ 멀티 머지문제 2. P2. 투 패스 정렬 방식을 사용하는 경우는?레코드의 크기가 max_length_for_sort_data 시스템 변수에 설정된 값보다 클 때BLOB이나 TEXT 타입의 컬럼이 SELECT 대상에 포함될 때문제 3. 조인 버퍼를 사용하면 정렬 순서가 흐트러질 수 있는 이유를 설명해주세요.조인 버퍼를 사용할 경우 드라이빙 테이블에서 조건에 맞는 레코드들을 조인 버퍼에 저장 후 드라이븐 테이블을 읽고 조..
2024.07.01 -
8장 인덱스
문제 1. (dept_no, emp_no) 로 구성된 인덱스가 있을 때 select * from employees where emp_no > 2000; 을 실행했더니 인덱스 풀 스캔 방식을 사용했습니다. 그 이유는 무엇일까요.조건절에 첫번째 칼럼이 아닌 두번째 칼럼을 사용했기 때문에 인덱스 풀 스캔 방식을 사용문제 2.(dept_no, emp_no) 로 구성된 인덱스가 있을 때 select * from employees where emp_no > 2000; 을 실행했더니 인덱스 스킵 스캔 방식을 사용했습니다. dept_no 의 유니크 값은 {1, 2} 입니다. 옵티마이저는 내부적으로 어떤 최적화 과정을 실행했을지 설명해주세요.select * from employees where dept_no = 1 an..
2024.07.01 -
5장 트랜잭션
문제1. InnoDB에서 인덱스 설계가 중요한 이유에 대해 설명해주세요.InnoDB는 MySQL에서 제공하는 잠금과 별개로 스토리지 엔진 내부에 레코드 기반 잠금 방식을 가지고 있습니다. 이 때 변경하려는 레코드 자체에 락을 거는 것이 아니라 검색한 인덱스의 레코드에 잠금을 걸기 때문에 같은 인덱스에 속한 모든 레코드에 락이 걸리게 됩니다. 그렇기 때문에 인덱스 설계를 통해 데이터 변경 시 락이 걸리는 범위를 줄일 수 있도록 해주어야 합니다.문제 2. GAP Lock에 대해 설명해주세요레코드와 바로 인접한 레코드 사이의 간격만 잠그는 것으로 레코드와 레코드 사이의 간격에 새로운 레코드가 생성되는 것을 제어합니다.문제 3. 격리 수준이 READ COMMITTED 인 상태에서 A 트랜잭션이 데이터를 변경 중..
2024.07.01