집 >데이터 베이스 >MySQL 튜토리얼 >mysql 인덱스의 차이점은 무엇입니까
차이점: 1. 고유 인덱스의 인덱스 열 값은 고유해야 하며 null 값이 허용됩니다. 2. 기본 키 인덱스의 인덱스 값은 고유해야 하지만 null 값은 허용되지 않습니다. . 결합 인덱스는 쿼리 조건에서 인덱스를 사용하는 경우에만 생성할 수 있습니다. 인덱스는 첫 번째 필드를 입력할 때만 사용됩니다. 4. 전체 텍스트 인덱스는 Myisam 스토리지 엔진을 사용하는 테이블에서만 사용할 수 있습니다.
이 튜토리얼의 운영 환경: windows10 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.
mysql 인덱스 유형:
기본 키 인덱스: 고유 인덱스와의 차이점은 기본 키 생성 시 null 값이 허용되지 않는다는 것입니다. .
일반 인덱스: 가장 기본적인 인덱스이며 특별한 제한이 없습니다.
고유 인덱스: 일반 인덱스와의 차이점은 인덱스 열의 값이 고유해야 하지만 null 값을 가질 수 있다는 점입니다.
전체 텍스트 인덱스: 더 큰 데이터 열의 경우 Myisam 스토리지 엔진을 사용하는 테이블에서만 사용할 수 있습니다.
결합 인덱스: 여러 필드에 생성된 인덱스를 의미합니다. 인덱스 생성 시 첫 번째 필드가 쿼리 조건에 사용되는 경우에만 인덱스가 사용됩니다. 결합 인덱스를 사용하는 경우 가장 왼쪽의 접두사 집합을 따릅니다.
예는 다음과 같습니다.
1 일반 인덱스
는 가장 기본적인 인덱스이며 제한이 없습니다. 생성 방법은 다음과 같습니다.
(1) 직접 인덱스 생성
CREATE INDEX index_name ON table(column(length))
(2) 테이블 구조를 수정하여 인덱스 추가
ALTER TABLE table_name ADD INDEX index_name ON (column(length))
(3) 테이블 생성과 동시에 인덱스 생성
CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) CHARACTER NOT NULL , `content` text CHARACTER NULL , `time` int(10) NULL DEFAULT NULL , PRIMARY KEY (`id`), INDEX index_name (title(length)) )
(4) 인덱스 삭제
DROP INDEX index_name ON table
2. 고유 인덱스
는 인덱스 열의 값이 고유해야 한다는 점을 제외하면 이전 일반 인덱스와 유사하지만 null 값이 허용됩니다. 복합 인덱스의 경우 컬럼 값의 조합이 고유해야 합니다. 생성 방법은 다음과 같습니다.
(1) 고유 인덱스 생성
CREATE UNIQUE INDEX indexName ON table(column(length))
(2) 테이블 구조 수정
ALTER TABLE table_name ADD UNIQUE indexName ON (column(length))
(3) 테이블 생성 시
CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) CHARACTER NOT NULL , `content` text CHARACTER NULL , `time` int(10) NULL DEFAULT NULL , UNIQUE indexName (title(length)) );
직접 지정 3. 기본 키 인덱스
는 A 특수 고유 인덱스입니다. 테이블은 하나의 기본 키만 가질 수 있으며 null 값은 허용되지 않습니다. 일반적으로 기본 키 인덱스는 테이블 생성과 동시에 생성됩니다:
CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) NOT NULL , PRIMARY KEY (`id`) );
4. 결합 인덱스
는 여러 필드에 생성되는 인덱스를 의미합니다. 인덱스는 생성 시 첫 번째 필드에서만 생성될 수 있습니다. 인덱스는 쿼리 조건에 사용됩니다. 결합 인덱스를 사용하는 경우 가장 왼쪽 접두사 set
ALTER TABLE `table` ADD INDEX name_city_age (name,city,age);
5를 따릅니다. 전체 텍스트 인덱스
는 인덱스의 값과 직접 비교하기보다는 텍스트에서 키워드를 찾는 데 주로 사용됩니다. 전체 텍스트 인덱스는 다른 인덱스와 매우 다릅니다. 이는 단순히 where 문의 매개변수 일치라기보다는 검색 엔진에 가깝습니다. 전체 텍스트 인덱스는 일반 where 문과 like 대신 일치 항목 작업과 함께 사용됩니다. create table, alter table, create index에 사용할 수 있지만 현재는 char, varchar, text 열에 대해 전체 텍스트 인덱스만 생성할 수 있습니다. 데이터의 양이 많을 경우 먼저 테이블에 대한 전체 텍스트를 생성한 후 작성하는 것보다 글로벌 인덱스가 없는 테이블에 데이터를 넣은 후 CREATE 인덱스를 사용하여 전체 텍스트 인덱스를 생성하는 것이 더 낫다는 점을 언급할 필요가 있습니다. 데이터 속도가 훨씬 빨라졌습니다.
(1) 테이블 생성 시 전체 텍스트 인덱스를 추가하는 것이 적합합니다
CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) CHARACTER NOT NULL , `content` text CHARACTER NULL , `time` int(10) NULL DEFAULT NULL , PRIMARY KEY (`id`), FULLTEXT (content) );
(2) 테이블 구조를 수정하여 전체 텍스트 인덱스를 추가합니다
ALTER TABLE article ADD FULLTEXT index_content(content)
(3) 직접 인덱스 생성
CREATE FULLTEXT INDEX index_content ON article(content)
추천 학습: mysql 비디오 튜토리얼
위 내용은 mysql 인덱스의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!