Pergunta

Espero poder obter respostas para cada servidor de banco de dados.

Para obter um resumo de como funciona a indexação, confira: Como funciona a indexação do banco de dados?

Foi útil?

Solução

O seguinte é o padrão SQL92, portanto deve ser suportado pela maioria dos RDMBS que usam SQL:

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

Outras dicas

Sql Server 2005 oferece a capacidade de especificar um índice de cobertura.Este é um índice que inclui dados de outras colunas no nível folha, portanto você não precisa voltar à tabela para obter colunas que não estão incluídas nas chaves do índice.

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

Isso é inestimável para uma consulta que tem my_col3 na lista de seleção e my_col1 e my_col2 na cláusula where.

Para pytables python, os índices não têm nomes e estão vinculados a colunas únicas:

tables.columns.column_name.createIndex()

No SQL Server, você pode fazer o seguinte:(Link do MSDN para a lista completa de opções.)

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

(ignorando algumas opções mais avançadas...)

O nome de cada índice deve ser exclusivo em todo o banco de dados.

Todos os índices podem ter múltiplas colunas e cada coluna pode ser ordenada na ordem que você desejar.

Os índices clusterizados são exclusivos – um por tabela.Eles não podem ter INCLUDEd colunas.

Os índices não clusterizados não são exclusivos e podem ter até 999 por tabela.Eles podem ter colunas incluídas e cláusulas where.

Para criar índices, os seguintes itens podem ser usados:

  1. Cria um índice em uma tabela.Valores duplicados são permitidos:CREATE INDEX index_name ON table_name (column_name)

  2. Cria um índice exclusivo em uma tabela.Valores duplicados não são permitidos:CREATE UNIQUE INDEX index_name ON table_name (column_name)

  3. Índice agrupado: CREATE CLUSTERED INDEX CL_ID ON SALES(ID);

  4. Índice não clusterizado:
    CREATE NONCLUSTERED INDEX NONCI_PC ON SALES(ProductCode);

Referir: http://www.codeproject.com/Articles/190263/Indexes-in-MS-SQL-Server para detalhes.

  1. CREATE INDEX name_index ON Employee (Employee_Name)

  2. Em uma coluna múltipla: CREATE INDEX name_index ON Employee (Employee_Name, Employee_Age)

Como a maioria das respostas é dada para bancos de dados SQL, estou escrevendo isso para bancos de dados NOSQL, especificamente para MongoDB.

Abaixo está a sintaxe para criar um índice no MongoDB usando mongo shell.

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

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

No exemplo acima, um único índice descendente de chave é criado no campo Nome.

Tenha em mente que os índices MongoDB usam estrutura de dados de árvore B.

Existem vários tipos de índices que podemos criar no mongodb, para mais informações consulte o link abaixo - https://docs.mongodb.com/manual/indexes/

Nem sempre é necessário um índice para todos os bancos de dados.Por exemplo:O mecanismo Kognitio, também conhecido como WX2, não oferece uma sintaxe para indexação, pois o mecanismo de banco de dados cuida disso implicitamente.Os dados são transmitidos por meio de particionamento round-robin e o Kognitio WX2 coloca e retira dados do disco da maneira mais simples possível.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top