Xenph Yan
그는 물었다 12년 전
61

데이터베이스 열에 인덱스화할 어떻게 합니까?

각 데이터베이스 서버 답변을 용이하게 할 수 있어요.

아웃라인과 대해 어떻게 작동됨 인덱스화를 체크아웃하려고: https://stackoverflow.com/questions/1108/how-does-database-indexing-work &gt <;

WW.
그는 12년 전 댓글을 달았습니다
1

이 질문에 대한 데이터베이스 (db) 서버를 통해 잘 될 것 같은 답변됨 docs 를 사용할 수 있습니다. For Oracle: [http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/indexes003.htm] (Oracle)

Saurabh Patil
그는 7년 전 댓글을 달았습니다
0

39 위 링크를 클릭할 때, 나는 내가 didn& for Oracle 올바른 페이지 수 없다. 올바른 링크를 보였다. http://docs.oracle.com/cd/B28359_01/server.111/b28310/indexes003.htm

Ethan Reesor
그는 6년 전 댓글을 달았습니다
6

39 골 중 하나로, s 는 구글 검색 1 위) 까지 표시하십시오 so& 밝혔다. 답이 너무 자주 배, docs 것보다 더 나은 것 "이라고 말했다. 여기에 해답이 될 수 없는 것은 매우 설정되었습니다 커뮤니티 위키 시행하는 모든 대답?

답변 9 개

다음은 표준 그러하매 SQL92 부양해야 한다며 사용하는 대부분의 르기스 SQL:

CREATE INDEX [index name] ON [table name] ( [column name] )

John Downey
David Manheim
그는 8년 전 댓글을 달았습니다
5

대부분의 시스템에서는 이 아니라, 그냥 데 사용할 수 있는 여러 개의 열이 추가하여 단일 열 대신 쉼표로 구분된 열 이름 목록.

sql Server 2005년 '등을 지정할 수 있습니다' 보기입니다 색인입니다. 이것은 데이터 색인을 포함하는 다른 커넥터로부터 열 dell. 리프 단위로레벨에서 don& 돌아가야 합니다 # 39, t, t # 39 aren& 열 수 있는 테이블에 포함된 색인에서 키.

create nonclustered index my_idx on my_table (my_col1 asc, my_col2 asc) include (my_col3);

이는 쿼리하지 대한 중요한 정보를 얻을 수 있는 '선택' 및 'my_col1 my_col2 my_col3 목록' 에 '와' where 절.

Sql Server 에서 다음과 같이 할 수 있습니다. ([MSDN https://partner.] (http://msdn.microsoft.com/en-us/library/ms188783.aspx) 에서 전체 목록을 옵션뿐.)

CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name 
    ON <object> ( column [ ASC | DESC ] [ ,...n ] ) 
    [ INCLUDE ( column_name [ ,...n ] ) ]
    [ WHERE <filter_predicate> ]

(무시 좀 더 고급 옵션).

각 인덱스화할 이름을 고유해야 데이터베이스 이다.

여러 열 수 있으며, 각 열 수 있는 모든 인덱스화합니다 오더해야 오더할 어떤 운영까지도.

테이블 당 1 개 클러스터링된 indexe 고유하도록. # 39, 그들은 can& 없다 '포함시키십시오 영업사원이에요 열.

999 개까지 가질 수 있고, 테이블 당 클러스터링되지 않은 인덱스화합니다 고유해야 않습니다. 단, where 절 포함되어 있을 수 있습니다.

39 의 피타바레스 indexe don& 없다, 파이썬, 이름과 바인딩됩니다 단일 열:

tables.columns.column_name.createIndex()

Indexe 다음과 같은 물건을 만드는 데 사용할 수 있습니다.

  1. 테이블을 인덱스화할 만듭니다. 복제본임을 값을 사용할 수 있습니다. 'index_name 인덱스화할 만들기 Table_name (column_name) '에서

  2. 테이블을 인덱스화할 고유해야 만듭니다. 복제본임을 값을 지정할 수 없습니다. 차별화된 인덱스화할 index_name table_name (column_name) '에서'

  3. 클러스터링된 인덱스화할: '의 매출 (ID),' CL_ID 클러스터링된 색인을 만들기

  4. 비클러스터 인덱스화할: '클러스터링되지 않은 인덱스화할 NONCI_PC 교체품 (프로두치코드),' 에서 작성

) 은 다음과 같은 뜻이 있다. 자세한 내용은 http://www.codeproject.com/Articles/190263/Indexes-in-MS-SQL-Server.

직원 (Employee_Name) '에서' 만드시겠습니까 name_index 인덱스화할 1.

  1. 에서 멀티 열: 직원 (Employee_Name, Employee_Age) '에서' name_index 인덱스화할 만들기

만드는 데 사용할 수 있습니다 다음 구문을 색인입니다.

CREATE INDEX <index_name> ON <table_name>(<column_name>)

만약 우리가 원하지 않을 수 있도록 만들 때 그 가치를 복제본임을 고유해야 로 인덱스화할 준수하십시오 추가할 수 있습니다

CREATE UNIQUE INDEX <index_name> ON <table_name>(<column_name>)

우리는 & # 39 에 의해 구분된 여러 열 이름을 만들 수 있는 여러 가지 열 인덱스화할 확증하노라 & # 39 windows용;;

색인 데이터베이스를 모두 필요한 것만은 아니다. 대한 예: # 39 로 구문, t 는 코니시오 lc-fc WX2 engine doesn& 인덱스화를 데이터베이스 엔진 처리하는 것이 암시적으로. 라운드 로빈 방식으로 데이터를 통해 얻을 수 있는 데이터 on / off 및 코니시오 댁이라면 파티셔닝에는 WX2 디스크입니다 가장 간단한 가능한 것입니다.

대부분의 SQL 데이터베이스를 NOSQL 데이터베이스를 대한 해답을 때, 나는 이 글을 쓰는, 특별히 몽고 db.

다음은 구문을 사용하여 몽고 db 에 인덱스화할 생성하시겠습니까 몽고 쉘입니다.

db.collection.createIndex( <key and index type specification>, <options> )

예 - '데버러스콜레스티온자크리틴데스 ({이름: 1}) '

위의 예에서 오버클로킹된 단일 키 내림차순을 인덱스화할 이름을 생성됩니다. 현장.

몽고 db 는 점을 유념하십시오 B-tree 인덱스 데이터 구조.

여러 가지 유형의 인덱스화합니다 몽고 db, 자세한 내용은 아래 링크를 생성위치 수 있습니다 - https://docs.mongodb.com/manual/indexes/