인덱스(index)는 테이블에서 원하는 데이터를 쉽고 빠르게 찾기 위해 사용한다.
인덱스를 사용하면 테이블 전체를 읽지 않아도 되므로, 검색과 질의에 대한 처리가 빠르게 이루어지는 장점을 가짐.
(인덱스는 사용자가 직접 접근할 수는 없으며, 검색과 질의에 대한 처리에서만 사용됩니다.)
아래 테이블과 같은 예제에 인덱스를 생성.
1. 인덱스 추가로 생성
CREATE INDEX <인덱스명> ON <테이블명> ( 칼럼명1, 칼럼명2, ... );
create table tb_member (
mem_idx bigint auto_increment primary key,
mem_userid varchar(20) unique not null,
mem_userpw varchar(20) not null,
mem_name varchar(20) not null,
mem_hp varchar(20) not null,
mem_email varchar(50),
mem_hobby varchar(100),
mem_ssn1 char(6) not null,
mem_ssn2 char(7) not null,
mem_zipcode char(5) not null,
mem_address1 varchar(100) not null,
mem_addtb_memberress2 varchar(100),
mem_address3 varchar(100),
mem_regdate datetime default now()
);
인덱스 추가(방법 두가지)
1. CREATE INDEX 인덱스명 ON 테이블명(컬럼명)
2. ALTER TABLE 테이블명 ADD INDEX 인덱스명(컬럼명)
CREATE INDEX NameIdx ON tb_member(mem_hp); 추가하고
인덱스 보기
SHOW INDEX FROM <테이블명>;
SHOW INDEX FROM tb_member;
인덱스 삭제
ALTER TABLE <테이블명> DROP INDEX <인덱스명>;
ALTER TABLE tb_member DROP INDEX NameIdx;
실행 결과 확인하고 다시 인덱스 보기
중복값이 허용되지 않는 INDEX만들기 UNIQUE 붙여주기.
CREATE TABLE dept(
deptno CHAR(2) PRIMARY KEY,
deptname VARCHAR(20),
deptloc VARCHAR(20)
);
INSERT INTO dept VALUES ('10', '관리부', '서울');
INSERT INTO dept VALUES ('20', '생산부', '부산');
INSERT INTO dept VALUES ('30', '영업부', '대구');
INSERT INTO dept VALUES ('40', '기술부', '대전');
CREATE INDEX X1PKUSER -- 중복되는것
ON dept(deptloc);
CREATE UNIQUE INDEX XPKUSER -- 중복되지 않는것
ON dept (deptname);
CREATE UNIQUE INDEX XPKUSER -- 중복되지 않는것
ON dept (deptno);
SHOW INDEX FROM dept; -- 인덱스 보여주기
FULLTEXT INDEX는 일반적인 인덱스와는 달리 매우 빠르게 테이블의 모든 텍스트 컬럼을 검색
컬럼의 문자열을 빠르게 탐색
ALTER TABLE dept
ADD FULLTEXT X2PKUSER(deptno);
[MySQL] python mysql연동하기 (0) | 2023.03.26 |
---|---|
[MySQL] 프로시저(Procedure) 만들기, 실행 (0) | 2023.03.22 |
[MySQL] view(뷰) 생성, 수정, 삭제, 조회 (0) | 2023.03.21 |
[MySQL] group by (0) | 2023.03.20 |
[MySQL] 회원가입 데이터베이스 테이블 만들기 JOIN(3) (0) | 2023.03.19 |
댓글 영역