본문 바로가기

스터디72

4.3.10 Extra 컬럼(1) 쿼리의 실행계획에서 성능에 관련된 중요한 내용이 Extra컬럼에 자주 표시됩니다. const row not found 쿼리의 실행계획에서 const 접근 방식으로 테이블을 읽었지만 실제로 해당 테이블에 레코드가 1건도 존재하지 않으면 표시됩니다. 이런 메세지가 표시되는 경우에는 테이블에 적절히 테스트용 데이터를 저장하고 다시 한번 쿼리의 실행 계획을 확인해 보는 것이 좋습니다. Distinct MariaDB [employees]> explain -> select distinct d.dept_no from departments d,dept_emp de where de.dept_no=d.dept_no; +------+-------------+-------+-------+---------------+-----.. 2021. 6. 3.
04.3 실행 계획 분석 MariaDB에서 쿼리의 실행 계획을 확인하려면 EXPLAIN 명령을 사용하면 됩니다. EXPLAIN 명령만 사용하면 기본적인 쿼리 실행 계획만 보이지만 EXPLAIN EXTENDED나 EXPLAIN PARTITIONS 명령을 이용해 더 상세한 실행 계획을 확인할 수도 있습니다. 실행계획 예 explain select * from employees e where e.emp_no in (select emp_no from salaries where salary between 10 and 1000); +------+--------------+-------------+--------+-------------------+-----------+---------+---------------------------+--.. 2021. 6. 2.
04 실행계획 분석 4.1 개요 4.1.1 쿼리 실행 절차 MariaDB 서버에서 쿼리가 실행되는 과정은 크게 3가지로 나눌수 있습니다. - 사용자로부터 요청된 SQL 문장을 잘게 쪼개서 MariaDB서버가 이해할 수 있는 수준으로 분리(파스 트리)한다. - SQL의 파싱 정보(파스 트리)를 확인하면서 어떤 테이블부터 읽고 어떤 인덱스를 이용해 테이블을 읽을지 선택한다. - 두 번째 단계에서 결정된 테이블의 읽기 순서나 선택된 인덱스를 이용해 스토리지 엔진으로부터 데이터를 가져온다. 첫번째 단계를 SQL 파싱이라고 하며 MariaDB서버의 SQL 파서라는 모듈로 처리합니다. 만약 SQL 문장이 문법적으로 잘못됐다면 이 단계에서 걸러집니다. 또한 이 단계에서 SQL 파스 트리가 만들어집니다. MariaDB서버는 SQL 문장 .. 2021. 6. 1.
3.5.4 INSERT INTO ... ON DUPLICATE KEY UPDATE, REPLACE MariaDB의 쿼리 기능 중 Oracle과 다른 기능이 있어 테스트 후 정리하였습니다. INSERT INTO ... ON DUPLICATE KEY UPDATE ... DML 작업 중 INSERT 시 사용할 수 있는 명령어입니다. INSERT INTO ... ON DUPLICATE KEY UPDATE 옵션을 사용할 수 있는데, 이 옵션은 중복된 레코드가 이미 존재할 때에는 UPDATE가 실행되고 그렇지 않을 때에는 INSERT가 실행됩니다. 간단한 테스트로 확인해보겠습니다. INSERT INTO ... ON DUPLICATE KEY UPDATE ... FD1=1,FD2='Lee'라는 값을 INSERT하는데, 만약, 같은 값이 있다면 FD2='Lee'라는 값으로 UPDATE한다는 뜻입니다. 테이블에는 일치.. 2021. 5. 10.