Latest web development tutorials

SQLite는 인덱스

인덱스 (색인)를 특수 룩업 테이블 데이터 검색 속도를 높이기 위해 사용되는 데이터베이스 검색 엔진이다. 간단히 말해, 인덱스 테이블에있는 데이터에 대한 포인터이다. 인덱스 뒤에 책의 인덱스는 매우 유사하다.

당신은 모든 페이지를 참조 책에서 특정 주제를 논의하려는 경우 예를 들어, 첫 번째 인덱스 모든 주제의 알파벳 목록을 가리 키도록해야하고, 하나 이상의 특정 페이지 번호를 가리 킵니다.

인덱스는 빠른 SELECT 쿼리 및 WHERE 절을 할 수 있지만, UPDATE 및 INSERT 문 때를 사용하여 데이터 입력 속도가 느려집니다. 색인 작성 또는 삭제,하지만 데이터에 영향을주지 않습니다 수 있습니다.

인덱스의 이름을 수있는 INDEX를 CREATE 문을 사용하여 인덱스를 작성, 테이블 색인을 하나 이상의 열 및 인덱스를 오름차순 또는 내림차순을 나타냅니다되도록 지정합니다.

지수는 열 또는 열 조합에서 중복 항목을 방지하기 위해 고유 및 이와 유사한 UNIQUE 제약 할 수있다.

INDEX 명령을 CREATE

다음과 같이 기본 구문은INDEX 만들기 :

TABLE_NAME ON INDEX의 INDEX_NAME을 만들;

별도의 인덱스

인덱스 생성 목록에 단지 하나의 인덱스에 기초한다. 다음과 같이 기본 구문은 다음과 같습니다

INDEX의 INDEX_NAME을 CREATE
TABLE_NAME ON (COLUMN_NAME);

고유 색인

고유 인덱스를 사용하면 성능뿐만 아니라, 데이터의 무결성을뿐만 아니라. 고유 인덱스는 테이블에 중복 값을 허용하지 않습니다. 다음과 같이 기본 구문은 다음과 같습니다

CREATE UNIQUE INDEX index_name
on table_name (column_name);

지수

종합 지수 작성 테이블의 두 개 이상의 열을 기반으로한다. 다음과 같이 기본 구문은 다음과 같습니다

INDEX의 INDEX_NAME을 CREATE
TABLE_NAME (컬럼 1, 2 열)에;

별도의 인덱스를 만드시겠습니까하면 계정 WHERE 절 열의 쿼리 필터 조건과 매우 자주 고려, 복합 인덱스입니다.

컬럼의 사용 가치 경우 별도의 인덱스를 사용하도록 선택한다. WHERE 절에서 필터가 있으면 자주 그 인덱스의 조합을 사용할 수도 두 개 이상의 컬럼을 사용한다.

암시 적 인덱스

암시 적 지수는 객체를 생성 할 때, 데이터베이스 서버에 의해 자동으로 생성 된 것입니다. 인덱스는 자동으로 키 제약 조건 및 고유 제한 조건 기본으로 작성됩니다.

다음은 예입니다, 우리는 급여 열 회사 테이블에 인덱스를 생성합니다 :

SQLite는> 회사 ON INDEX의 salary_index (급여)를 작성;

이제 다음의이 회사 테이블에.indices 명령 목록을 사용할 수있는 모든 인덱스를 사용하자 :

sqlite가> .indices 회사

이 테이블을 만들 때 암시 적 인덱스를sqlite_autoindex_COMPANY_1다음과 같은 결과가 생성됩니다 생성한다.

salary_index
sqlite_autoindex_COMPANY_1

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

sqlite가> SELECT * FROM있는 sqlite_master 어디 유형 = '인덱스';

DROP INDEX 명령

인덱스는 삭제 SQLite는DROP 명령을 사용할 수 있습니다.인덱스를 삭제하면 성능이 감소 또는 증가시킬 수 있기 때문에 특별한주의가 있어야한다.

다음과 같이 기본 구문은 다음과 같습니다

DROP INDEX의 인덱스 _;

당신은 창조 이전 인덱스를 삭제하려면 다음 문을 사용할 수 있습니다 :

sqlite가> DROP 색인 salary_index;

어떤 상황에서 인덱스의 사용을 피하기 위해?

인덱스 여기서 데이터베이스 성능을 향상시키고, 이에 비록 몇 가지 경우를 인덱스의 사용을 방지 할 필요가있다. 당신이 인덱스를 사용하는 경우, 다음 지침은 재고되어야한다 :

  • 지수는 작은 테이블에 사용할 수 없습니다.

  • 지수는 자주 업데이트 또는 테이블 삽입 작업이 대량으로 사용할 수 없습니다.

  • 컬럼에 사용되어서는 안 지수는 NULL 값의 큰 숫자를 포함하고 있습니다.

  • 인덱스 컬럼의 빈번한 작업에 사용할 수 없습니다.