Latest web development tutorials

MySQL의 인덱스

효율적인 운영이 매우 중요하다을 위해 MySQL을 MySQL이 인덱스를 구축, 인덱스는 크게 MySQL의의 검색 속도를 향상시킬 수 있습니다.

합리적인 디자인은 MySQL은 람보르기니 인 인덱스를 사용하는 경우 예를 들어, 어떤 디자인과 인덱스의 사용은 MySQL이 세발 자전거입니다 없습니다.

지수는 별도의 인덱스와 조합 인덱스를 가리 킵니다. 단일 컬럼 인덱스를 포함 별도의 인덱스 테이블은 복수의 별도의 인덱스를 가질 수 있지만, 이것은 지수 아니다. 지수, 복수 열을 포함하는, 즉 케이블.

당신이 인덱스를 만들 때 인덱스가 (일반적으로 WHERE 절의 조건으로) SQL 쿼리의 조건에서 사용되도록해야합니다.

실제로, 인덱스는 또한 엔티티 테이블을 기록하는 기본 키 인덱스 필드 및 점을 보유하는 테이블이다.

상기 인덱스를 사용하는 장점에 대해 얘기하지만 인덱스의 과도한 사용은 남용 될 것이다. 그러므로, 인덱스는 또한 단점이 그러한 테이블 INSERT, UPDATE와 같은 테이블의 갱신 속도를 감소시키고, 삭제 동안에 인덱스가 크게 질의 속도를 증가하면서. 업데이트 테이블 때문에, MySQL은 데이터를 저장뿐만 아니라 인덱스 파일에 대한 저장뿐만 아니라.

인덱싱은 인덱스 파일의 디스크 공간을 차지한다.


일반 인덱스

인덱스 만들기

이는 어떠한 제한이 없다면, 기본 인덱스이다. 그것은 다음과 같은 방법을 만들었습니다 :

CREATE INDEX indexName ON mytable(username(length)); 

이 CHAR이면 VARCHAR 타입, 길이 필드의 실제 길이보다 작을 수 BLOB과 TEXT 형식은, 만약 길이를 지정해야하는 경우.

테이블 구조를 수정

ALTER mytable ADD INDEX [indexName] ON (username(length)) 

테이블을 만들 때 직접 지정

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
INDEX [indexName] (username(length))  
 
);  

인덱스 구문을 삭제

DROP INDEX [indexName] ON mytable; 

고유 색인

그것은 기존의 일반적인 색인과 유사한, 상이한 : 인덱스 열의 값은 고유하지만 여유 값을 허용한다. 이 인덱스의 조합 인 경우, 열 값은 고유해야한다. 그것은 다음과 같은 방법을 만들었습니다 :

인덱스 만들기

CREATE UNIQUE INDEX indexName ON mytable(username(length)) 

테이블 구조를 수정

ALTER mytable ADD UNIQUE [indexName] ON (username(length)) 

테이블을 만들 때 직접 지정

CREATE TABLE mytable(  
 
ID INT NOT NULL,   
 
username VARCHAR(16) NOT NULL,  
 
UNIQUE [indexName] (username(length))  
 
);  

인덱스를 추가하고 삭제하는 ALTER 명령을 사용하여

인덱스 데이터 테이블을 추가 할 수있는 네 가지 방법이 있습니다 :

  • PRIMARY KEY (column_list에 담기 tbl_name를 표를 ALTER ) : 이 문은 인덱스 값은 고유해야하며 NULL이 될 수 없음을 의미합니다 기본 키를 추가합니다.

  • UNIQUE 인덱스 _ (column_list에 담기 tbl_name를 표를 ALTER ) : 이 문은 인덱스 값은 고유해야 생성 (외부 NULL을 제외하고, NULL 여러 번 나타날 수 있습니다).
  • INDEX의 인덱스 _ (column_list에 담기 tbl_name를 표를 ALTER ) : 일반 인덱스를 추가, 인덱스 값은 여러 번 발생할 수 있습니다.
  • 표 tbl_name를가 FULLTEXT의 인덱스 _ (column_list에 담기 ALTER ) : 이 문은 전체 텍스트 인덱싱, 인덱스가 FULLTEXT입니다 지정합니다.

하기 실시 예는 테이블의 인덱스를 추가한다.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

또한 ALTER 명령에서 인덱스를 제거하려면 DROP 절을 사용할 수 있습니다. 인덱스를 삭제하려면 다음 예를보십시오 :

mysql> ALTER TABLE testalter_tbl DROP INDEX (c);

추가하고 기본 키를 삭제 ALTER 명령을 사용하여

오직 당신 만이 기본 키 인덱스를 추가 할 때 기본 기본 키가 비어 있지 있는지 (NOT NULL)을 만들 필요가 기본 키 열 역할을합니다. 다음 예는 다음과 같다 :

mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);

또한 기본 키를 삭제하려면 ALTER 명령을 사용할 수 있습니다 :

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

그냥 PRIMARY KEY가 지정된 시간을 삭제 지정,하지만 당신은 인덱스를 삭제하면 인덱스의 이름을 알고 있어야합니다.


디스플레이 된 인덱스 정보

당신은 테이블의 인덱스 정보를 나열하려면 SHOW의 INDEX 명령을 사용할 수 있습니다. \의 G를 추가하여 출력을 포맷합니다.

다음 예를보십시오 :

mysql> SHOW INDEX FROM table_name\G
........