티스토리 뷰
SQL INDEX 설명, 사용법
1 순차적 접근
SQL 은 테이블에 있는 테이터를 접근하는 방법으로 2가지 방법을 가지고 있는데, 하나는 순차적 접근 방법이고 다른 하나는 직접 접근 방법이다.
첫번째 접근 방법은 WHERE 절 사용시 테이블이 많은 행을 가지고 있을 때 많은 시간을 소비해야하고 비효율 적이라 할것이다.
전화번호에서 "ㅇ" 으로 시작하는 사람을 "ㄱ" 에서 부터 찾는것이나 다를것이 없다.
2 직접 접근
SQL 이 순차적 접근이 아니라 집접 접근을 사용한다면 요구하는 특성을 가진 행만 읽게되고 속도가 향샹될 수 있다.
이렇게 하기 위해서는 INDEX 가 필요하며 인덱스는 테이블에 접근하기 위한 또 다른 형식이며, 책에 책갈피 기능과 비슷하다.
SQL 에서 인덱스는 많은 노드를 가지고 있는 트리처럼 구성된다
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);
생성된 테이블 확인
mysql> show keys from student;
이글이 도움이 되셨다면 아래에 로그인이 필요없는 공감 버튼을 클릭해주세요 ^^
'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 |
- Total
- Today
- Yesterday
- 에디트플러스
- 부트스트랩
- centos 7
- CentOS
- 반응형 웹
- 우분투 usb 설치
- 미디어쿼리
- SQL 함수
- 트위터 공유방법 및 소스
- 카카오스토리 sns 공유
- 우분투
- MYSQL 명령어
- yum
- 리눅스 명령어
- 페이스북 공유소스
- mysql 백업
- 카카오스토리 url 공유
- mariadb 백업
- 카카오스토리 공유소스
- APM 설치
- CentOS 설치
- 트위터 sns 공유
- 우분투 다운로드
- crontab
- SQL 정렬
- 트위터 공유소스
- 트위터 url 공유
- ubuntu
- MySQL
- Q6600
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
26 | 27 | 28 | 29 | 30 | 31 |