본문 바로가기

SQL

데이터베이스 개체(인덱스, 뷰, 스토어드 프로시저)

인덱스 : 책의 찾아보기 기능과 같은 것

use market_db;
select * from buy where mem_id = '아이유' ;

 

 

buy테이블 내의 내용을 full scan하여 아이유를 찾았기 때문에 Exsecution Plan을 봤을 때 저런 모형이 나옴

 

create index idx_member_name ON member(member_name);
SELECT * FROM member WHERE member_name = '아이유' ;

 

 

index를 member_name으로 지정하면 해당 인덱스를 이용하여 원하는 내용을 더 빨리 찾을 수 있다.

데이터의 형태가 크지 않을 때는 상관 없지만 몇 십만 건의 데이터를 다루게 된다면 10분이 걸릴 과정을 초 단위로 조절할 수 있다.

 

SELECT mem_id, addr FROM market_db.member WHERE mem_id = 'ITZ' ;

 

 

primary key를 사용하여 조회했을 경우


뷰 : 실체가 없는 가상의 테이블

 

 CREATE VIEW [뷰명] AS

   SELECT [컬럼명] FROM [테이블명] WHERE [조건절]

 

실제의 데이터를 직접적으로 건드리지 않고 데이터를 수정, 관리할 수 있다는 장점이 있다.


스토어드 프로시저 : if문, 반복문과 같이 일반 프로그래밍 언어처럼 쓰일 수 있게 하는 기능

 

 

Delimiter란?

 

구분 문자 중 하나로, 별도의 독립적 영역 사이의 경계를 지정하는 데 사용하는 하나의 문자 혹은 문자들의 배열등을 말한다. 

만약 delmiter가 없다면 begin과 end사이의 2개의 select구문은 동시에 실행되지 않는다.

일반 프로그래밍 언어의 사용자 지정함수로 비슷한 느낌이다.