> 데이터 베이스 > MySQL 튜토리얼 > mysql 인덱스의 차이점은 무엇입니까

mysql 인덱스의 차이점은 무엇입니까

WBOY
풀어 주다: 2022-02-17 11:54:25
원래의
6816명이 탐색했습니다.

차이점: 1. 고유 인덱스의 인덱스 열 값은 고유해야 하며 null 값이 허용됩니다. 2. 기본 키 인덱스의 인덱스 값은 고유해야 하지만 null 값은 허용되지 않습니다. . 결합 인덱스는 쿼리 조건에서 인덱스를 사용하는 경우에만 생성할 수 있습니다. 인덱스는 첫 번째 필드를 입력할 때만 사용됩니다. 4. 전체 텍스트 인덱스는 Myisam 스토리지 엔진을 사용하는 테이블에서만 사용할 수 있습니다.

mysql 인덱스의 차이점은 무엇입니까

이 튜토리얼의 운영 환경: windows10 시스템, mysql8.0.22 버전, Dell G3 컴퓨터.

mysql 인덱스의 차이점은 무엇인가요?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿