티스토리 뷰

DEVELOPE/MYSQL&MARIADB

SQL INDEX 설명, 사용법

소찾나 2017. 10. 19. 09:07
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

SQL INDEX 설명, 사용법

SQL INDEX 설명, 사용법

SQL INDEX 설명, 사용법



1 순차적 접근


SQL 은 테이블에 있는 테이터를 접근하는 방법으로 2가지 방법을 가지고 있는데, 하나는 순차적 접근 방법이고 다른 하나는 직접 접근  방법이다.


첫번째 접근 방법은 WHERE 절 사용시 테이블이 많은 행을 가지고 있을 때 많은 시간을 소비해야하고 비효율 적이라 할것이다.


전화번호에서 "ㅇ" 으로 시작하는 사람을 "ㄱ" 에서 부터 찾는것이나 다를것이 없다.




2 직접 접근

SQL 이 순차적 접근이 아니라 집접 접근을 사용한다면  요구하는 특성을 가진 행만 읽게되고 속도가 향샹될 수 있다. 


이렇게 하기 위해서는 INDEX 가 필요하며 인덱스는 테이블에 접근하기 위한 또 다른 형식이며,  책에 책갈피 기능과 비슷하다.



SQL 에서 인덱스는 많은 노드를 가지고 있는 트리처럼 구성된다


SQL INDEX 설명, 사용법



INDEX 의 특성


- 검색이 많을때 사용하며 검색을 보다 빠르게 사용하기 위해서 사용한다.


- INDEX 는 알고리즘을 만들어 인덱스 영역을 따로 구축하여 사용한다.


- 일정 공간에 인덱스가 생성되기 때문에 과도한 인덱스는 비효율적이다.


- 빈번하게 INSERT 나 UPDATE 가 이루어지는 테이블에서는 INDEX 가 많으면 속도가 저하되어 접학하지 않다.


- 인덱스는 한 테이블당 15개 필드가 최고이다.


- INDEX 생성할때 정수형이 가장 효율적이다


- 가변적인 크기가 정규화 할 수 없은 데이터(BLOB, TXT)등은 인덱스 생성에 비효율적이다.


- INDEX가 가해지는 필드는 가능한 NULL 값이 없어야 한다.


- INDEX 필드를 조건에서 연산, 가송시 인덱스 효력 상실된다.



3 INDEX 생성방법



테이블 생성시 INDEX 생성


CREATE TABLE `student` (

  `no` int(11) NOT NULL AUTO_INCREMENT,

  `sno` int(13) DEFAULT NULL,

  `name` varchar(15) DEFAULT NULL,

  `jumsu` int(3) DEFAULT NULL,

  `course` varchar(10) DEFAULT NULL,

  KEY `sno` (`sno`),   ---> 테이블 생성시 INDEX 를 설정해준다

  PRIMARY KEY (`no`)

)




생성된 테이블 INDEX 추가


mysql> alert table student add index(sno);


SQL INDEX 설명, 사용법


생성된 테이블 확인


mysql> show keys from student;


SQL INDEX 설명, 사용법



이글이 도움이 되셨다면 아래에 로그인이 필요없는 공감 버튼을 클릭해주세요 ^^


'DEVELOPE > MYSQL&MARIADB' 카테고리의 다른 글

SQL 명령문 최적화 하기  (0) 2017.10.20
SQL VIEW 생성, 사용법  (0) 2017.10.19
SQL JOIN 조인 메뉴얼  (0) 2017.10.18
SQL SUBQUERY 부속질의어  (0) 2017.10.18
SQL UNION / UNION ALL  (0) 2017.10.18
댓글