1️⃣ 인덱스 실습
· 기본적으로 SQL문을 실행하면 Full Table Scan 으로 실행된다.이것은 테이블의 처음부터 끝까지 탐색하며 찾은 것
(Result Grid 창에서 오른쪽부분 맨 아래 쪽으로 화살표 내리면 Execution Plan 탭 있는데 거기서 확인 가능)
· 인덱스를 만드는 명령어 실행. 인덱스는 열에 지정
CREATE INDEX idx_member_name ON member(member_name);
member 테이블의 member_name 열에 인덱스를 지정하라는 뜻
· 인덱스 생성 후 아까의 SQL문을 다시 수행해보고,
Execution Plan 탭을 보면 Non-Unique Key Lookup으로 되어있다. 이는 인덱스를 통해 결과를 찾았다는 것
2️⃣ 뷰 실습하기
· 기본적인 뷰를 만들어보기 위해 다음 명령어를 실행
CREATE VIEW member_view
AS
SELECT * FROM member;
· 이제 테이블이 아닌 뷰에 접근해보자.
다음 명령어 실행
SELECT * FROM member_view;
잘 실행됨을 볼 수 있다.
3️⃣ 스토어드 프로시저 실습하기
· 만약 아래와 같은 두 명령어를 엄청 자주 실행하게 된다고 가정해보자.
SELECT * FROM member WHERE member_name = "아이유";
SELECT * FROM member WHERE member_id = "ccc";
매번 입력한다면 오타 발생 등 불편함이 있을 것이다. 특히 명령이 더 많아진다면...
· 두 SQL을 하나의 스토어드 프로시저로 만들어보자.
다음과 같이 입력한다
DELIMITER //
CREATE PROCEDURE myProc()
BEGIN
SELECT * FROM member WHERE member_name = "아이유";
SELECT * FROM member WHERE member_id = "ccc";
END //
DELIMITER ;
자세한 문법은 나중에 설명...
DELIMITER 가 스토어드 프로시저를 묶어주는거라고 지금은 생각하자. 그리고 BEGIN 과 END 사이에 SQL을 넣어준다.
· 이제 만든 스토어드 프로시저를 호출하면 두 줄의 SQL을 실행할 필요가 없다.
실행은 다음과 같이 입력
CALL myProc();
잘 실행됨을 확인 가능
참고로 옆의 Schemas 탭에서도 잘 생성됐음을 확인 가능
프로시저를 지우고 싶다면 우클릭 후 Drop Stored Procedure 를 선택하면 된다
'DB∙SQL > MySQL' 카테고리의 다른 글
[MySQL] MySQL Workbench에서 SQL문 사용하는 법 (0) | 2023.07.18 |
---|---|
[MySQL] MySQL Workbench 사용해보기 2 - 데이터 수정, 데이터 삭제(SQL 사용 X) (0) | 2023.07.18 |
[MySQL] MySQL Workbench 사용해보기 1 - 데이터베이스 생성, 테이블 생성, 데이터 삽입(SQL 사용 X) (0) | 2023.07.18 |
[MySQL] MySQL 설치방법 (Windows 10 기준) (0) | 2023.07.11 |
댓글