IT Share you

데이터베이스 열을 인덱싱하는 방법

shareyou 2020. 12. 1. 20:01
반응형

데이터베이스 열을 인덱싱하는 방법


각 데이터베이스 서버에 대한 답변을 얻을 수 있기를 바랍니다.

인덱싱이 작동하는 방법에 대한 개요 는 데이터베이스 인덱싱이 어떻게 작동합니까?


다음은 SQL92 표준이므로 SQL을 사용하는 대부분의 RDMBS에서 지원해야합니다.

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

Sql Server 2005커버링 인덱스를 지정할 수 있습니다. 이는 리프 수준에있는 다른 열의 데이터를 포함하는 인덱스이므로 인덱스 키에 포함되지 않은 열을 가져 오기 위해 테이블로 돌아갈 필요가 없습니다.

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

이 가지고있는 쿼리에 대해 매우 유용 my_col3선택 목록 및 my_col1my_col2WHERE 절에.


python pytables의 경우 인덱스에는 이름이 없으며 단일 열에 바인딩됩니다.

tables.columns.column_name.createIndex()

SQL Server에서 다음을 수행 할 수 있습니다. ( MSDN Link to full list of options.)

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

(일부 고급 옵션 무시 ...)

각 인덱스의 이름은 데이터베이스 전체에서 고유해야합니다.

모든 인덱스에는 여러 열이있을 수 있으며 각 열은 원하는 순서로 정렬 할 수 있습니다.

클러스터형 인덱스는 테이블 당 하나씩 고유합니다. 그들은 INCLUDEd 개의 열을 가질 수 없습니다 .

비 클러스터형 인덱스는 고유하지 않으며 테이블 당 최대 999 개를 가질 수 있습니다. 여기에는 포함 된 열과 where 절이있을 수 있습니다.


인덱스를 만들려면 다음 항목을 사용할 수 있습니다.

  1. 테이블에 인덱스를 만듭니다. 중복 값이 ​​허용됩니다.CREATE INDEX index_name ON table_name (column_name)

  2. 테이블에 고유 인덱스를 만듭니다. 중복 값은 허용되지 않습니다.CREATE UNIQUE INDEX index_name ON table_name (column_name)

  3. 클러스터형 인덱스 : CREATE CLUSTERED INDEX CL_ID ON SALES(ID);

  4. 비 클러스터형 인덱스 :
    CREATE NONCLUSTERED INDEX NONCI_PC ON SALES(ProductCode);

자세한 내용은 http://www.codeproject.com/Articles/190263/Indexes-in-MS-SQL-Server 를 참조하십시오.


  1. CREATE INDEX name_index ON Employee (Employee_Name)

  2. 다중 열에서 : CREATE INDEX name_index ON Employee (Employee_Name, Employee_Age)


대부분의 답변은 SQL 데이터베이스에 대해 제공되므로 NOSQL 데이터베이스, 특히 MongoDB에 대해 작성하고 있습니다.

다음은 mongo 셸을 사용하여 MongoDB에서 인덱스를 생성하는 구문입니다.

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

예 - db.collection.createIndex( { name: -1 } )

위의 예에서는 이름 필드에 단일 키 내림차순 색인이 생성됩니다.

MongoDB 인덱스는 B- 트리 데이터 구조를 사용합니다.

이 인덱스의 여러 유형은 우리가 더 많은 정보를, MongoDB를에 만들 수 있습니다 아래 링크를 참조 - https://docs.mongodb.com/manual/indexes/


모든 데이터베이스에 대해 색인이 항상 필요한 것은 아닙니다. 예 : Kognitio 일명 WX2 엔진은 데이터베이스 엔진이 암시 적으로 처리하므로 인덱싱을위한 구문을 제공하지 않습니다. 데이터는 라운드 로빈 파티셔닝을 통해 전송되고 Kognitio WX2는 가능한 가장 간단한 방법으로 디스크에 데이터를 가져오고 가져옵니다.


다음 구문을 사용하여 색인을 만들 수 있습니다.

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

중복 값을 허용하지 않으려면 다음 과 같이 인덱스를 생성하는 동안 UNIQUE추가 할 수 있습니다.

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

' , '로 구분 된 여러 열 이름을 제공하여 여러 열에 인덱스를 만들 수 있습니다.

참고 URL : https://stackoverflow.com/questions/1156/how-do-i-index-a-database-column

반응형