MySQL 인덱스
인덱스의 장점
인덱스는 솔직히 말하면 우리 책의 최신 목차입니다.
목차를 사용하지 않고 신화사전을 이용하여 한자 "张"을 검색하는 경우 신화사전의 첫 페이지에서 마지막 페이지를 찾아야 할 수 있으며, 최대 2시간이 걸릴 수 있습니다. 사전이 두꺼울수록 시간이 더 많이 걸립니다. 이제 디렉토리를 사용하여 한자 "Zhang"을 찾습니다. Zhang의 첫 글자는 z이고, z로 시작하는 한자는 900페이지 이상부터 검색하는 데 1분밖에 걸리지 않습니다. 한자의 경우 이는 색인의 중요성을 나타냅니다.
인덱스는 열에서 특정 값이 있는 행을 빠르게 찾는 데 사용됩니다.
인덱스를 사용하지 않으면 MySQL은 첫 번째 레코드부터 시작한 다음 관련 행을 찾을 때까지 전체 테이블을 읽어야 합니다. 테이블이 클수록 시간이 더 걸립니다. 테이블의 쿼리된 열에 인덱스가 있으면 MySQL은 모든 데이터를 볼 필요 없이 데이터 파일의 중간을 검색하는 지점에 빠르게 도달할 수 있습니다.
물론, 인덱스를 너무 많이 쓰는 것은 쉽지 않습니다. 인덱스를 많이 쓸수록 수정 속도는 느려집니다. 수정된 데이터를 쓸 때 인덱스도 수정해야 하기 때문입니다. ㅋㅋㅋ 고유한 인덱스를 사용합니다. 이 열의 행 데이터에는 중복 값을 허용하지 않습니다. 이 열의 각 데이터 행은 고유해야 합니다
전체 텍스트 색인 | |
---|---|
참고: 12.7을 완료한 후 다음 부분을 공부하세요. ㅋㅋㅋ 코드>돈 A DD Index ( 사용자 이름 ) | |
예시 설명 | Money 테이블 증가 인덱스의 사용자 이름 필드 |
자세한 설명 | |
Bas IC Syntax | alter table table add UNIQUE(field) |
money
ADD UNIQUE(email
) 머니 테이블의 이메일 필드에 고유 인덱스를 추가하세요 |
---|
유형 | 자세한 설명 |
---|---|
기본 구문 | alter 테이블 추가 FULLTEXT(필드) |
예 | ALTER TABLE mo 네 A DD FULLTEXT (content );money ADD FULLTEXT(content ); |
示例解释 | 为money表的content字段增加唯一索引 |
主键索引
类型 | 详细说明 |
---|---|
基本语法 | alter table 表 add PRIMARY KEY(字段) |
示例 | ALTER TABLE money ADD PRIMARY KEY(id ); |
示例解释 | 为money表的id字段增加主键索引 |
创建表时也可以声明索引
创建表时可在创建表语句后加上对应的类型即可声明索引:
PRIMARY KEY(字段)
INDEX [索引名] (字段)
FULLTEXT [索引名] (字段)
UNIQUE[索引名] (字段)
注:中括号中的索引名,代表可选。
整体示例如下:
예시 설명🎜머니 테이블의 콘텐츠 필드에 고유 인덱스 추가🎜🎜CREATE TABLE
test
(
id
INT NOT NULL ,
username
VARCHAR(20) NOT NULL ,
password
INT NOT NULL ,
content
INT NOT NULL ,
PRIMARY KEY (id
),
INDEX pw (password
),
UNIQUE (username
),
FULLTEXT (content
기본 키 인덱스🎜🎜 🎜🎜🎜Type🎜🎜자세한 설명🎜🎜🎜🎜🎜🎜기본 구문🎜🎜alter 테이블 추가 PRIMARY KEY(필드)🎜🎜🎜🎜Example🎜🎜ALTER TABLE money
기본 추가 KEY(id
);🎜🎜🎜🎜예시🎜🎜머니 테이블의 id 필드에 기본 키 인덱스를 추가하세요🎜🎜테이블을 생성할 때 인덱스를 선언할 수도 있습니다. 🎜
테이블을 생성할 때 create table 문 뒤에 해당 유형을 추가하여 인덱스를 선언할 수 있습니다. 🎜
PRIMARY KEY (필드) 🎜 INDEX [인덱스 이름] (필드)🎜 FULLTEXT [인덱스 이름] (필드)🎜 UNIQUE[인덱스 이름] (필드)🎜🎜
참고: 괄호 안의 인덱스 이름은 선택 사항을 나타냅니다. 🎜
전체 예는 다음과 같습니다. 🎜
CREATE TABLE
test
(🎜id
INT NOT NULL , 🎜사용자 이름< /code> VARCHAR(20) NOT NULL, 🎜
)🎜 ) 엔진 = InnoDB;🎜🎜🎜비밀번호
INT NOT NULL, 🎜content
INT NOT NULL, 🎜 기본 키(id
), 🎜 INDEX 비밀번호(비밀번호
), 🎜 고유(사용자 이름
),🎜 FULLTEXT(<코드>콘텐츠