HSQLDB-인덱스

database index테이블의 작업 속도를 향상시키는 데이터 구조입니다. 인덱스는 하나 이상의 열을 사용하여 생성 할 수 있으며, 빠른 임의 조회와 레코드에 대한 효율적인 액세스 순서를위한 기반을 제공합니다.

인덱스를 만들 때 SQL 쿼리를 만드는 데 사용할 열이 무엇인지 고려하고 해당 열에 하나 이상의 인덱스를 만들어야합니다.

실제로 인덱스는 기본 키 또는 인덱스 필드와 실제 테이블에 대한 각 레코드에 대한 포인터를 유지하는 테이블 유형이기도합니다.

사용자는 색인을 볼 수 없습니다. 쿼리 속도를 높이는 데만 사용되며 데이터베이스 검색 엔진에서 레코드를 빠르게 찾는 데 사용됩니다.

INSERT 및 UPDATE 문은 인덱스가있는 테이블에서 더 많은 시간이 걸리는 반면 SELECT 문은 해당 테이블에서 더 빠르게 실행됩니다. 그 이유는 삽입 또는 업데이트하는 동안 데이터베이스도 인덱스 값을 삽입하거나 업데이트해야하기 때문입니다.

단순하고 고유 한 색인

테이블에 고유 인덱스를 만들 수 있습니다. ㅏunique index두 행이 동일한 인덱스 값을 가질 수 없음을 의미합니다. 다음은 테이블에 인덱스를 생성하는 구문입니다.

CREATE UNIQUE INDEX index_name
ON table_name (column1, column2,...);

하나 이상의 열을 사용하여 인덱스를 만들 수 있습니다. 예를 들어 tutorial_author를 사용하여 tutorials_tbl에 색인을 생성합니다.

CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author)

테이블에 간단한 인덱스를 만들 수 있습니다. 쿼리에서 UNIQUE 키워드를 생략하여 간단한 인덱스를 생성하십시오. ㅏsimple index 테이블에서 중복 값을 허용합니다.

열의 값을 내림차순으로 인덱싱하려는 경우 열 이름 뒤에 예약어 DESC를 추가 할 수 있습니다.

CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author DESC)

INDEX 추가 및 삭제를위한 ALTER 명령

테이블에 인덱스를 추가하기위한 네 가지 유형의 명령문이 있습니다.

  • ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) −이 문은 PRIMARY KEY를 추가합니다. 즉, 인덱싱 된 값은 고유해야하며 NULL이 될 수 없습니다.

  • ALTER TABLE tbl_name ADD UNIQUE index_name (column_list) −이 문은 값이 고유해야하는 인덱스를 생성합니다 (여러 번 나타날 수있는 NULL 값은 예외).

  • ALTER TABLE tbl_name ADD INDEX index_name (column_list) − 이것은 어떤 값이 두 번 이상 나타날 수있는 일반 인덱스를 추가합니다.

  • ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list) − 이것은 텍스트 검색 목적으로 사용되는 특별한 FULLTEXT 인덱스를 생성합니다.

다음은 기존 테이블에 인덱스를 추가하는 쿼리입니다.

ALTER TABLE testalter_tbl ADD INDEX (c);

ALTER 명령과 함께 DROP 절을 사용하여 INDEX를 삭제할 수 있습니다. 다음은 위에서 생성 된 인덱스를 삭제하는 쿼리입니다.

ALTER TABLE testalter_tbl DROP INDEX (c);

INDEX 정보 표시

SHOW INDEX 명령을 사용하여 테이블과 관련된 모든 인덱스를 나열 할 수 있습니다. 세로 형식 출력 (\ G로 지정됨)은 긴 줄 ​​바꿈을 피하기 위해이 문에 유용합니다.

다음은 테이블에 대한 인덱스 정보를 표시하는 일반 구문입니다.

SHOW INDEX FROM table_name\G