본문 바로가기

DBMS

DB 데이터 인덱스(index)

반응형

▶인덱스 : 데이터베이스에서 자료들을 쉽게 검색하려고 데이터마다 붙여놓은 꼬리표다.
              데이터를 쉽게 찾도록 실제 데이터 순서대로 배열되어있다.

              특정 데이터를 검색 할 때는 인덱스를 먼저 찾아보고 난 후 
              인덱스가 참조하는 데이터를 찾게된다.

 

 

※ 인크립션 : 실용주의 암호화 -인덱스 설명 자료- [OPE(순차적암호화)관련된 설명도 포함]

https://goo.gl/bRNkSK

 

 

▷ 인덱스 생성 과정


 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
CREATE TABLE test (no NUMBER, name VARCHAR2(100)); -- 테이블 생성.. 컬럼 (no,name)
 
-- 1부터 1000까지의 랜덤한 값을 생성하는 프로시져 만들기
CREATE OR REPLACE PROCEDURE index_test 
   (p_num NUMBER)
IS
BEGIN
    FOR i IN 1 .. p_num LOOP
        INSERT INTO test VALUES(round(dbms_random.value(1,1000),0), dbms_random.string('x'10));
    END LOOP;
END;
 
BEGIN 
   index_test(100000);  --  10만개의 랜덤한 값 생성
END;
 
SELECT COUNT(*FROM test; -- test 테이블의 행의 개수 count
desc test_no_idx;
SELECT * FROM test WHERE ROWNUM <= 10-- 행 10개 조회
 
SELECT * FROM test WHERE no BETWEEN 500 AND 550-- no값이 500~550사이인 값을 조회해본다.
 
CREATE INDEX test_no_idx ON test(no); -- index 생성
 
SELECT * FROM dba_ind_columns WHERE table_name = 'TEST'-- 인덱스 설정 확인
cs


 

code line 21: 인덱스 생성 전의 COST값을 조회 해본다.

COST 값 ↓ = 성능 ↑



 

 

code line 23: 인덱스 생성 후의 COST값을 조회 해본다.



 

code line 25: 인덱스 조회한다.


 

 

인덱스를 생성 했을 때 COST값이 훨씬 낮아지는 것을 위 사진에서 확인할 수 있다.

 

 

반응형