MySQL 인덱스
MySQL 인덱스의 구축은 MySQL의 효율적인 운영을 위해 매우 중요합니다. 인덱스는 MySQL의 검색 속도를 크게 향상시킬 수 있습니다.
예를 들어 제대로 설계되어 인덱스를 사용하는 MySQL이 람보르기니라면, 설계되지 않고 인덱스를 사용하는 MySQL은 인간 세발자전거입니다.
중국어 사전의 목차 페이지(색인)를 예로 들면, 병음, 획, 부수 등으로 정렬된 목차(색인)를 통해 필요한 단어를 빠르게 찾을 수 있습니다.
인덱스는 단일 열 인덱스와 결합 인덱스로 구분됩니다.
단일 열 인덱스, 즉 인덱스에는 단일 열만 포함됩니다. 테이블은 여러 개의 단일 열 인덱스를 가질 수 있지만 이는 결합된 인덱스가 아닙니다.
결합 인덱스, 즉 인덱스에는 여러 열이 포함됩니다.
인덱스를 생성할 때 인덱스가 SQL 쿼리 문의 조건(일반적으로 WHERE 절의 조건)에 적용되는지 확인해야 합니다.
사실 인덱스는 기본 키와 인덱스 필드를 저장하고 엔터티 테이블의 레코드를 가리키는 테이블이기도 합니다.
위에서 인덱스를 사용하면 얻을 수 있는 이점이 있지만 인덱스를 과도하게 사용하면 악용이 발생할 수 있습니다. 따라서 인덱스에도 단점이 있습니다. 인덱스는 쿼리 속도를 크게 향상시키지만 테이블에 대한 INSERT, UPDATE 및 DELETE와 같은 테이블 업데이트 속도도 감소시킵니다. 테이블을 업데이트할 때 MySQL은 데이터를 저장할 뿐만 아니라 인덱스 파일도 저장해야 하기 때문입니다.
인덱스 파일을 생성하면 디스크 공간을 차지하게 됩니다. 리소스 점유의 두 번째 단점
관련 무료 학습 권장 사항: mysql 비디오 튜토리얼
일반 인덱스
가장 기본적인 인덱스 유형으로 고유성 등의 제한이 없습니다.
색인 만들기
가장 기본적인 색인으로 제한이 없습니다. 생성 방법은 다음과 같습니다.
CREATE INDEX indexName ON table_name (column_name)
CHAR, VARCHAR 유형인 경우 길이는 필드의 실제 길이보다 작을 수 있으며, BLOB 및 TEXT 유형인 경우 길이를 지정해야 합니다.
테이블 구조 수정(인덱스 추가)
ALTER table tableName ADD INDEX indexName(columnName)
테이블 생성 시 직접 지정
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) );
인덱스 삭제 구문
DROP INDEX [indexName] ON mytable;
고유 인덱스
고유 인덱스는 어떠한 것도 허용하지 않습니다. 두 개의 행에 동일한 인덱스 값을 가진 인덱스가 있습니다.
대부분의 데이터베이스는 기존 데이터에 중복된 키 값이 있는 경우 새로 생성된 고유 인덱스를 테이블과 함께 저장하는 것을 허용하지 않습니다. 데이터베이스는 테이블에 중복 키 값을 생성하는 새 데이터 추가를 방지할 수도 있습니다. 예를 들어, 직원 테이블에 있는 직원의 성(lname)에 대한 고유 인덱스를 생성하는 경우 두 명의 직원이 동일한 성을 가질 수 없습니다.
인덱스 생성
CREATE UNIQUE INDEX indexName ON mytable(username(length))
테이블 구조 수정
ALTER table mytable ADD UNIQUE [indexName] (username(length))
테이블 생성 시 직접 지정
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, UNIQUE [indexName] (username(length)) );
ALTER 명령어를 사용하여 인덱스 추가 및 삭제
추가하는 방법은 4가지가 있습니다. 데이터 테이블에 대한 인덱스:
ALTER TABLE tbl_name ADD PRIMARY KEY (column_list):
이 문은 기본 키를 추가합니다. 즉, 인덱스 값은 고유해야 하며 NULL이 될 수 없습니다.
ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): 이 문으로 생성된 인덱스의 값은 고유해야 합니다(NULL을 제외하면 NULL이 여러 번 나타날 수 있음).
ALTER TABLE tbl_name ADD INDEX index_name (column_list): 일반 인덱스를 추가하면 인덱스 값이 여러 번 나타날 수 있습니다.
**ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list)
위 내용은 MySQL 인덱스 구성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!