집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 인덱스를 사용하는 방법
MySQL 인덱스의 개념
인덱스는 특별한 종류의 파일입니다(InnoDB 데이터 테이블의 인덱스는 테이블 공간의 필수 부분입니다). 여기에는 데이터 테이블의 모든 레코드에 대한 참조 포인터가 포함되어 있습니다. 보다 일반적으로 말하면, 데이터베이스 인덱스는 책 앞부분의 목차와 같으며, 이는 데이터베이스 쿼리 속도를 높일 수 있습니다. 위의 SQL 문에서 인덱스가 없으면 데이터베이스는 200개의 데이터를 모두 탐색하여 해당 인덱스를 사용하여 조건에 맞는 항목을 선택하고 인덱스에서 조건에 맞는 옵션을 직접 검색합니다. . SQL 문을 "SELECT * FROM Article WHERE id=2000000"으로 변경하면 데이터베이스가 200만 행의 데이터를 순차적으로 읽은 후 결과를 제공하도록 하시겠습니까, 아니면 인덱스에서 직접 찾도록 하시겠습니까? (참고: 일반적으로 데이터베이스는 기본적으로 기본 키에 대한 인덱스를 생성합니다.
추천 과정: MySqltutorial.
인덱스는 클러스터형 인덱스와 비클러스터형 인덱스로 구분되며, 클러스터형 인덱스는 데이터의 물리적 위치에 따라 저장됩니다. 비클러스터형 인덱스는 순차적이지만 비클러스터형 인덱스는 다릅니다. 클러스터형 인덱스는 다중 행 검색 속도를 향상시킬 수 있는 반면 비클러스터형 인덱스는 단일 행 검색의 경우 매우 빠릅니다.
MySQL 인덱스의 종류
1. 일반 인덱스
이것은 가장 기본적인 인덱스이며 제한이 없습니다. 예를 들어 위의 제목 필드에 대해 생성된 인덱스는 MyIASM의 기본 BTREE 유형 인덱스이기도 합니다. 우리가 대부분의 경우에 사용하는 인덱스입니다.
–直接创建索引 CREATE INDEX index_name ON table(column(length)) –修改表结构的方式添加索引 ALTER TABLE table_name ADD INDEX index_name ON (column(length)) –创建表的时候同时创建索引 CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL , `time` int(10) NULL DEFAULT NULL , PRIMARY KEY (`id`), INDEX index_name (title(length)) ) –删除索引 DROP INDEX index_name ON table
2. 고유 인덱스
은 인덱스 열의 값이 고유해야 한다는 점을 제외하면 일반 인덱스와 유사하지만 null입니다. 값이 허용됩니다. (기본키와 다르다는 점 참고하세요) 결합 인덱스인 경우 컬럼 값의 조합은 유일해야 하며, 생성 방법은 일반 인덱스와 유사하다.
–创建唯一索引 CREATE UNIQUE INDEX indexName ON table(column(length)) –修改表结构 ALTER TABLE table_name ADD UNIQUE indexName ON (column(length)) –创建表的时候直接指定 CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL , `time` int(10) NULL DEFAULT NULL , PRIMARY KEY (`id`), UNIQUE indexName (title(length))
위 내용은 MySQL 인덱스를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!