mysql에서는 인덱스 키워드를 사용하여 인덱스를 생성할 수 있으며 "CREATE INDEX 인덱스 이름 ON 테이블 이름(열 이름)" 구문을 사용하여 인덱스를 볼 수 있으며 "SHOW INDEX FROM 테이블 이름" 구문을 사용할 수 있습니다. ; 인덱스를 수정하는 데에도 사용할 수 있습니다. "DROP INDEX 인덱스 이름 ON 테이블 이름" 구문입니다.
이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.
mysql에서 인덱스는 데이터 테이블의 하나 이상의 열로 구성된 특수 데이터베이스 구조인 인덱스를 의미하며, 데이터 테이블의 특정 값을 가진 레코드를 빠르게 쿼리하는 데 사용할 수 있습니다.
index 키워드를 사용하여 인덱스를 생성하거나, 인덱스를 보거나, 인덱스를 수정할 수 있습니다.
index 키워드는 인덱스를 생성합니다
특히 인덱스 생성을 위해 CREATE INDEX 문을 사용하여 기존 테이블에 인덱스를 생성할 수 있지만 이 문은 기본 키를 생성할 수 없습니다.
CREATE INDEX 索引名 ON 表名 (列名 [长度] [ASC|DESC])
<테이블 이름>: 인덱스를 생성할 테이블 이름을 지정합니다.
<열 이름>: 인덱스를 생성할 열 이름을 지정합니다. 일반적으로 쿼리 문의 JOIN 절과 WHERE 절에 자주 나타나는 열을 인덱스 열로 사용하는 것을 고려할 수 있습니다.
<길이>: 선택사항. 열 앞의 길이 문자를 사용하여 인덱스를 생성하도록 지정합니다. 열의 일부를 사용하여 인덱스를 생성하면 인덱스 파일의 크기를 줄이고 인덱스 열이 차지하는 공간을 절약하는 데 도움이 됩니다. 어떤 경우에는 열의 접두사만 인덱싱할 수 있습니다. 인덱스 열의 길이는 최대 255바이트(MyISAM 및 InnoDB 테이블의 경우 1000바이트)로 제한됩니다. 인덱스 열의 길이가 이 제한을 초과하는 경우 해당 열의 접두사를 통해서만 인덱싱할 수 있습니다. 또한 BLOB 또는 TEXT 유형의 열도 접두사 인덱스를 사용해야 합니다.
ASC|DESC: 선택사항. ASC는 인덱스가 오름차순으로 정렬되도록 지정하고, DESC는 인덱스가 내림차순으로 정렬되도록 지정하며 기본값은 ASC입니다.
예를 들어 c4 열에 새 인덱스를 추가하려면 다음 문을 사용하세요.
CREATE INDEX idx_c4 ON t(c4);
기본적으로 인덱스 유형이 지정되지 않으면 MySQL은 B-Tree 인덱스를 생성합니다.
인덱스를 보기 위한 index 키워드
SHOW INDEX FROM 表名 [FROM 数据库名]
구문은 다음과 같습니다.
<테이블 이름>: 보려는 데이터 테이블의 이름을 지정합니다.
<데이터베이스 이름>: 조회하려는 데이터 테이블이 위치한 데이터베이스를 지정하며, 생략 가능합니다. 예를 들어, SHOW INDEX FROM Student FROM test; 문은 테스트 데이터베이스에 있는 학생 데이터 테이블의 인덱스를 보는 것을 의미합니다.
example : :
mysql> SHOW INDEX FROM tb_stu_info2\G *************************** 1. row *************************** Table: tb_stu_info2 Non_unique: 0 Key_name: height Seq_in_index: 1 Column_name: height Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: YES Index_type: BTREE Comment: Index_comment: 1 row in set (0.03 sec)
은 인덱스가 고유 인덱스인지 여부를 나타냅니다. 고유 인덱스가 아닌 경우 이 열의 값은 1이고, 고유 인덱스인 경우 이 열의 값은 0입니다. | |
---|---|
은 인덱스의 이름을 나타냅니다. | |
는 인덱스에서 해당 열의 위치를 나타냅니다. 인덱스가 단일 열인 경우 이 열의 값은 1이고, 인덱스가 결합된 인덱스인 경우 이 열의 값은 다음과 같습니다. 인덱스 정의의 각 열. | |
은 인덱스를 정의하는 열 필드를 나타냅니다. | |
은 열이 인덱스에 저장되는 순서를 나타냅니다. MySQL에서 오름차순은 "A"(오름차순) 값으로 표시되며, NULL로 표시되면 분류가 없음을 의미합니다. | |
인덱스의 고유 값 개수에 대한 추정치입니다. 카디널리티는 정수로 저장된 통계에 대해 계산되므로 작은 테이블의 경우에도 값이 정확할 필요는 없습니다. 카디널리티가 클수록 MySQL이 조인을 수행할 때 인덱스를 사용할 가능성이 커집니다. | |
은 열의 인덱스 문자 수를 나타냅니다. 열이 부분적으로만 인덱싱된 경우 열 값은 인덱싱된 문자 수입니다. 전체 열이 인덱싱된 경우 열 값은 NULL입니다. | |
는 키워드가 어떻게 포장되었는지 나타냅니다. 압축되지 않은 경우 값은 NULL입니다. | |
은 인덱스 열에 NULL이 포함되어 있는지 여부를 표시하는 데 사용됩니다. 열에 NULL이 포함되어 있으면 해당 열의 값은 YES입니다. 그렇지 않은 경우 이 열의 값은 NO입니다. | |
인덱스(BTREE, FULLTEXT, HASH, RTREE)에서 사용하는 유형과 방법을 표시합니다. | |
댓글을 표시합니다. |