English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQLite 인덱스

인덱스는 특별한 검색 테이블이며, 데이터베이스 검색 엔진이 인덱스를 사용하여 데이터 검색을 가속화할 수 있습니다. 간단히 말해서, an인덱스데이터 테이블의 데이터를 가리키는 포인터입니다. 데이터베이스의 인덱스는 책 뒤의 인덱스와 매우 유사합니다.

예를 들어, 책의 특정 주제에 대해 모든 페이지를 참조하려면 먼저 인덱스를 참조해야 합니다. 인덱스는 모든 주제를 알파벳 순으로 나열하고, 특정 페이지 번호를 참조합니다.

인덱스는 SELECT 쿼리와 WHERE 절의 속도를 빠르게 만들어줍니다. 하지만 UPDATE와 INSERT 문을 통해 데이터 입력 속도를 느리게 만듭니다. 인덱스를 생성하거나 제거하면 데이터에 영향을 미치지 않습니다.

인덱스를 생성하는 것은 CREATE INDEX 문을 사용하며, 이 문은 인덱스의 이름을 지정하고, 인덱스를 생성할 테이블과 인덱스를 생성할 열을 지정하고, 인덱스가 오름차순인지 내림차순인지를 지정합니다.

인덱스는 유일한 것일 수도 있으며, UNIQUE 제약 조건과 유사하게, 인덱스는 인덱스의 열이나 열 조합에서 중복 항목이 발생하지 않도록 방지할 수 있습니다.

CREATE INDEX命令

CREATE INDEX 명령어다음은 기본 문법입니다CREATE INDEX

CREATE INDEX index_name ON table_name;

단일 열 인덱스-

단일 열 인덱스는 단일 테이블 열에 기반한 인덱스입니다. 기본 문법은 다음과 같습니다

CREATE INDEX index_name ON table_name (column_name);

유일한 인덱스-

유일한 인덱스는 성능을 향상시키기 위해서만 사용되지 않습니다. 또한 데이터 일관성을 유지하기 위해 사용됩니다. 유일한 인덱스는 테이블에 중복된 값을 삽입할 수 없게 합니다. 기본 문법은 다음과 같습니다

CREATE UNIQUE INDEX index_name ON table_name (column_name);

복합 인덱스-

복합 인덱스는 테이블의 두 개나 더 많은 열에 대한 인덱스입니다. 기본 문법은 다음과 같습니다1CREATE INDEX index_name ON table_name (column2, column

);

단일 열 인덱스를 사용하든, 복합 인덱스를 사용하든, column(s)을 고려해야 합니다. 이는 WHERE 문에서 매우 자주 사용되는 필터 조건으로 사용될 가능성이 높습니다.

가시적 인덱스

가시적 인덱스는 데이터베이스 서버가 객체를 생성할 때 자동으로 생성되는 인덱스입니다. 자동으로 주키 제약 조건과 유일한 제약 조건에 인덱스를 생성합니다.

예제

다음은 예제입니다. COMPANY 테이블의 급여 열에 인덱스를 생성하는 것입니다.-

sqlite> CREATE INDEX salary_index ON COMPANY (salary);

이제 다음과 같이 사용해 보겠습니다:.indices명령어는 COMPANY 테이블에서 모든 사용 가능한 인덱스를 나열합니다:

sqlite> .indices COMPANY

이렇게 되면 다음과 같은 결과가 나타납니다.sqlite_autoindex_COMPANY_1이 가시적 인덱스입니다.이 가시형식 인덱스는 테이블 자체를 생성할 때 생성됩니다.

salary_indexsqlite_autoindex_COMPANY_1

모든 인덱스 데이터베이스 범위를 다음과 같이 나열할 수 있습니다:

sqlite> SELECT * FROM sqlite_master WHERE type = 'index';

DROP INDEX 명령어

SQLite를 사용할 수 있습니다. DROP索引를 지우는 명령어를 실행합니다. 인덱스를 지우는 것은 조심스럽게 해야 합니다. 성능이 느려지거나 빨라질 수 있습니다.

다음은 기본 문법입니다.-

DROP INDEX index_name;

이전에 생성된 인덱스를 제거할 수 있는 다음과 같은 문장을 사용할 수 있습니다.

sqlite> DROP INDEX salary_index;

어떤 경우에 인덱스를 피해야 합니까?

인덱스는 데이터베이스 성능을 향상시키기 위해 목표되었지만, 때로는 인덱스를 사용하지 않는 것이 좋습니다. 다음은 인덱스 사용을 다시 고려할 때의 지침입니다.

인덱스는 사용되지 않아야 합니다.-

  • 작은 테이블.

  • 빈번하고 많은 배치 업데이트 또는 삽입 작업이 있는 테이블.

  • NULL 값이 많은 열.

  • 자주操作하는 열.