MySQL - 인덱스 기본
이 문서에서 인덱스 생성을 테스트하는 데 사용된 사용자 테이블의 구조는 다음과 같습니다.
인덱스란 무엇입니까
인덱스(MySQL에서는 "키"라고도 함)는 스토리지 엔진이 레코드를 빠르게 찾을 수 있도록 하는 데이터 구조입니다
——"고성능 MySQL"
우리는 실제로 인덱스가 무엇인지 파악합니다. 이는 필요한 데이터 행을 신속하게 일치시키고 찾는 데 도움이 되는 기능을 갖는 데이터 구조로, 데이터베이스 성능 최적화를 위해 가장 일반적으로 사용되는 도구 중 하나입니다. 그 역할은 슈퍼마켓의 쇼핑 가이드나 책의 카탈로그와 같습니다.
인덱스 유형
SHOW INDEX FROM table_name;
을 사용하여 인덱스 세부정보를 볼 수 있습니다SHOW INDEX FROM table_name;
查看索引详情
1、主键索引 PRIMARY KEY
它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引。
注意:一个表只能有一个主键
2、唯一索引 UNIQUE
唯一索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。
可以通过ALTER TABLE table_name ADD UNIQUE (column);
创建唯一索引
可以通过ALTER TABLE table_name ADD UNIQUE (column1,column2)
;创建唯一组合索引
3、普通索引 INDEX
最基本的索引,它没有任何限制。
可以通过ALTER TABLE table_name ADD INDEX index_name (column);
创建普通索引
4、组合索引 INDEX
组合索引,即一个索引包含多个列。多用于避免回表查询。
可以通过ALTER TABLE table_name ADD INDEX index_name(column1, column2, column3);
创建组合索引
5、全文索引 FULLTEXT
全文索引(也称全文检索)是目前搜索引擎使用的一种关键技术。
可以通过ALTER TABLE table_name ADD FULLTEXT (column);创建全文索引
索引一经创建不能修改,如果要修改索引,只能删除重建。可以使用DROP INDEX index_name ON table_name;
1. 기본키 인덱스 PRIMARY KEY
허용하지 않는 특별한 고유 인덱스입니다 빈 공간 값. 일반적으로 기본 키 인덱스는 테이블 생성과 동시에 생성됩니다.
참고: 테이블에는 하나의 기본 키만 있을 수 있습니다
🎜🎜🎜2. 고유 인덱스 UNIQUE🎜🎜 고유 인덱스 열의 값은 고유해야 하지만 null 값은 허용됩니다. 복합 인덱스의 경우 컬럼 값의 조합이 고유해야 합니다. 🎜🎜ALTER TABLE table_name ADD UNIQUE(열)
을 통해 고유 인덱스를 생성할 수 있습니다🎜🎜🎜🎜🎜🎜 ALTER TABLE table_name ADD UNIQUE (column1,column2)
를 통해 고유한 결합 인덱스를 생성할 수 있습니다.🎜🎜🎜🎜🎜🎜3 일반 인덱스 INDEX🎜🎜 가장 기본적인 색인으로 제한이 없습니다. 🎜🎜ALTER TABLE table_name ADD INDEX index_name(열);
🎜🎜🎜🎜🎜🎜4. 결합 인덱스 INDEX🎜🎜결합 인덱스, 즉 인덱스에는 여러 열이 포함됩니다. 주로 테이블 쿼리를 피하기 위해 사용됩니다. 🎜🎜ALTER TABLE table_name ADD INDEX index_name(column1,column2,column3);
🎜🎜🎜🎜🎜🎜5. 전체 텍스트 색인 FULLTEXT🎜🎜전체 텍스트 색인(전체 텍스트 검색이라고도 함)이 핵심입니다. 현재 검색 엔진에서 사용되는 기술. 🎜🎜ALTER TABLE table_name ADD FULLTEXT(열);🎜🎜🎜🎜🎜🎜인덱스는 한 번 생성되면 수정할 수 없습니다. 인덱스를 수정하려면 삭제하고 다시 작성하기만 하면 됩니다. DROP INDEX index_name ON table_name;
을 사용하여 인덱스를 삭제할 수 있습니다. 🎜🎜🎜인덱스 설계의 원칙🎜🎜🎜1. 인덱싱에 적합한 열은 where 절에 나타나는 열이거나, 연결 절에 지정된 열입니다🎜🎜2. 카디널리티가 작은 클래스의 경우 인덱싱 효과가 떨어집니다. , 아니요 이 열에는 인덱스를 생성해야 합니다🎜🎜3. 짧은 인덱스를 사용하세요. 긴 문자열 열을 인덱스하는 경우 접두어 길이를 지정해야 인덱스 공간을 많이 절약할 수 있습니다. -색인. 인덱스에는 추가 디스크 공간이 필요하며 쓰기 작업 성능이 저하됩니다. 테이블 내용이 수정되면 인덱스가 업데이트되거나 재구성됩니다. 인덱스 열이 많을수록 이 시간이 길어집니다. 따라서 쿼리를 용이하게 하기 위해 필요한 인덱스만 유지하세요. 🎜관련 참고자료php 중국어 웹사이트
위 내용은 mysql 인덱스 기본에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!