테스트 데이터 만들기
테이블 생성 CREATE TABLE
CREATE TABLE T (
ID INT PRIMARY KEY,
A INT,
B INT,
C INT,
TYPE CHAR(2)
);
인덱스 생성 CREATE INDEX
CREATE INDEX IDX_1 ON T(B,A);
PL/SQL로 데이터 만들기
DELIMITER $$
-- 프로시저 INSERTDATA 선언 시작
CREATE PROCEDURE INSERTDATA()
BEGIN
DECLARE id INT; -- 증가 변수 ID 선언
SET id = 1; -- 변수 ID의 초기값 선언
WHILE id < 100 DO -- 변수 ID의 값이 100보다 작은 경우 루프 실행
INSERT T VALUES( id, id/10, id/100, id/1000, 'A'); -- INSERT문 실행
SET id = id + 1; -- 1턴마다 ID의 값 1씩 증가
END WHILE;
END$$ -- 프로시저 선언 종료
DELIMITER ;
CALL INSERTDATA(); --프로시저 실행
프로시저 삭제하기
DROP PROCEDURE INSERTDATA;
실행계획, 테이블 정보 조회
테이블의 인덱스 보기 SHOW INDEX
SHOW INDEX FROM T;
테이블의 칼럼 보기 SHOW COLUMNS
SHOW COLUMNS FROM T;
테이블 생성쿼리 보기 SHOW CREATE TABLE
SHOW CREATE TABLE T;
쿼리의 실행계획 보기 EXPLAIN
EXPLAIN
SELECT B, A, COUNT(1) FROM T GROUP BY B,A;
쿼리 실행 후 COST 보기 SHOW STATUS
SELECT * FROM T IGNORE INDEX(IDX_1) WHERE B = 0;
SHOW STATUS LIKE 'Last_Query_Cost';
'DB > SQL' 카테고리의 다른 글
MySQL 튜닝 : 인라인 뷰 데이터 줄이기 (0) | 2021.10.10 |
---|---|
MySQL 조인 JOIN 튜닝 : 불필요한 조인을 EXISTS로 바꾸기 (0) | 2021.10.10 |
MYSQL SELECT 튜닝 (0) | 2021.10.10 |
MySQL 데이터 타입 Data Types (0) | 2021.10.10 |
MYSQL 실행계획 EXPLAIN (0) | 2021.10.08 |