mysql48 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. 테스트 숫자 데이터 넣기(seq 사용) select seq from seq_to number_to_from number; 로 사용하면 됩니다. Oracle의 level connect by 절을 사용하여 임의의 데이터를 생성하는것과 비슷한 용도로 사용하면 유용할 것 같습니다. MariaDB [classicmodels]> select seq from seq_1_to_20; +-----+ | seq | +-----+ | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 | | 10 | | 11 | | 12 | | 13 | | 14 | | 15 | | 16 | | 17 | | 18 | | 19 | | 20 | +-----+ 20 rows in set (0.001 sec) 1부터 20까지 숫자를 생성하기 2021. 5. 31. 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. 이전 1 ··· 3 4 5 6 7 8 9 ··· 12 다음