이 문서에서는 주로 MySQL 인덱스 분석 및 동적 웹사이트 최적화를 가속화하는 방법을 설명합니다. iSH 중국 튜토리얼 온라인
1. 인덱스란 무엇인가요? iSH China Tutorial Online
Index는 특정 값을 가진 레코드를 빠르게 찾는 데 사용됩니다. 모든 MySQL 인덱스는 B-트리 형식으로 저장됩니다. 인덱스가 없는 경우 쿼리를 실행할 때 MySQL은 요구 사항을 충족하는 레코드를 찾을 때까지 첫 번째 레코드부터 시작하여 전체 테이블의 모든 레코드를 검색해야 합니다. 테이블의 레코드 수가 많을수록 이 작업 비용이 높아집니다. 검색 조건으로 사용된 컬럼에 인덱스가 생성되면 MySQL은 레코드를 스캔하지 않고도 대상 레코드의 위치를 빠르게 가져올 수 있습니다. 테이블에 1000개의 레코드가 있는 경우 인덱스를 통해 레코드를 찾는 것이 레코드를 순차적으로 스캔하는 것보다 최소 100배 빠릅니다. iSH 중국어 튜토리얼 온라인
people이라는 테이블을 생성한다고 가정합니다. iSH 중국어 튜토리얼 온라인
CREATE TABLE people ( peopleid SMALLINT NOT NULL, iSH 중국어 튜토리얼 온라인
이름 CHAR(50) NOT NULL )
그런 다음 완전히 무작위로 삽입합니다. 1000 people 테이블에 다른 이름 값을 입력합니다. 이름 열에는 데이터 파일에 명시적인 순서가 없습니다. 이름 열에 인덱스를 생성하면 MySQL은 인덱스의 각 항목에 대해 내부적으로 데이터 파일의 실제 레코드 위치에 대한 "포인터"를 저장합니다. 따라서 이름이 "Mike"와 동일한 레코드의 peopleid를 찾으려면(SQL 명령은 "SELECT peopleid FROM people WHERE name='Mike';") MySQL은 "Mike" 값을 찾을 수 있습니다. name 인덱스에서 직접 이동합니다. 데이터 파일의 해당 행은 해당 행의 peopleid(999)를 정확하게 반환합니다. 이 프로세스 동안 MySQL은 결과를 반환하기 위해 하나의 행만 처리하면 됩니다. "이름" 열에 인덱스가 없으면 MySQL은 데이터 파일의 모든 레코드, 즉 1,000개의 레코드를 검색합니다! 분명히 MySQL이 처리해야 하는 레코드 수가 적을수록 작업을 더 빨리 완료할 수 있습니다. iSH 중국어 튜토리얼 온라인
2. 인덱스 유형 iSH 중국어 튜토리얼 온라인
MySQL은 선택할 수 있는 다양한 인덱스 유형을 제공합니다. iSH 중국어 튜토리얼 온라인
일반 인덱스: iSH 중국어 튜토리얼 온라인
이것은 가장 기본적인 인덱스 유형이며 고유성 등의 제한이 없습니다. . 일반 인덱스는 다음과 같은 방법으로 생성할 수 있습니다. iSH 중국어 튜토리얼 온라인은
인덱스를 생성합니다(예: CREATE INDEX <인덱스 이름> ON tablename(열 목록)). iSH 중국어 튜토리얼 온라인은
테이블을 수정합니다(예: ALTER TABLE tablename ADD). INDEX [인덱스 이름] ] (열 목록); iSH 중국어 튜토리얼 온라인
CREATE TABLE tablename ([...], INDEX [인덱스 이름] (열 목록)); 중국어 튜토리얼 온라인
고유 인덱스: iSH 중국어 튜토리얼 온라인
이러한 종류의 인덱스는 기본적으로 이전 "일반 인덱스"와 동일하지만 한 가지 차이점이 있습니다. 인덱스 열의 모든 값은 한 번만 나타날 수 있습니다. 독특하세요. 고유 인덱스는 다음과 같은 방법으로 생성할 수 있습니다. iSH 중국어 자습서 온라인으로
인덱스 만들기(예: CREATE UNIQUE INDEX <인덱스 이름> ON tablename(열 목록)) iSH 중국어 자습서 온라인으로
테이블 수정(예: ALTER TABLE tablename ADD UNIQUE [index) name] (열 목록); iSH 중국어 튜토리얼 온라인
테이블을 생성할 때 인덱스를 지정합니다. 예를 들어 CREATE TABLE tablename ([...], UNIQUE [인덱스 이름] (열 목록));
기본 키: iSH 중국어 튜토리얼 온라인
기본 키는 고유한 인덱스이지만 "PRIMARY KEY"로 지정해야 합니다. AUTO_INCREMENT 유형의 열을 사용해 본 적이 있다면 기본 키와 같은 개념에 이미 익숙할 것입니다. 기본 키는 일반적으로 "CREATE TABLE 테이블 이름 ([...], PRIMARY KEY (열 목록));"과 같이 테이블을 생성할 때 지정됩니다. 그러나 "ALTER TABLE 테이블 이름 ADD PRIMARY KEY (열 목록);"과 같이 테이블을 수정하여 기본 키를 추가할 수도 있습니다. 각 테이블에는 기본 키가 하나만 있을 수 있습니다. iSH 중국어 튜토리얼 온라인
전체 텍스트 색인: iSH 중국어 튜토리얼 온라인
MySQL은 버전 3.23.23부터 전체 텍스트 인덱싱 및 전체 텍스트 검색을 지원합니다. MySQL에서 전체 텍스트 인덱스의 인덱스 유형은 FULLTEXT입니다. VARCHAR 또는 TEXT 유형 열에 전체 텍스트 인덱스를 만들 수 있습니다. CREATE TABLE 명령이나 ALTER TABLE 또는 CREATE INDEX 명령을 사용하여 생성할 수 있습니다. 대규모 데이터 세트의 경우 ALTER TABLE(또는 CREATE INDEX) 명령을 통해 전체 텍스트 인덱스를 생성하는 것이 전체 텍스트 인덱스가 있는 빈 테이블에 레코드를 삽입하는 것보다 빠릅니다.