OrientDB - Índices
Index é um ponteiro que aponta para uma localização de dados no banco de dados. Indexingé um conceito usado para localizar rapidamente os dados sem ter que pesquisar todos os registros em um banco de dados. OrientDB suporta quatro algoritmos de índice e vários tipos dentro de cada um.
Os quatro tipos de índice são -
Índice SB-Tree
Ele fornece uma boa combinação de recursos disponíveis em outros tipos de índice. Melhor usar isso para utilidade geral. É durável, transacional e oferece suporte a consultas de intervalo. É o tipo de índice padrão. Os diferentes tipos de plug-ins que suportam este algoritmo são -
UNIQUE- Esses índices não permitem chaves duplicadas. Para índices compostos, refere-se à exclusividade das chaves compostas.
NOTUNIQUE - Esses índices permitem chaves duplicadas.
FULLTEXT- Esses índices são baseados em qualquer palavra do texto. Você pode usá-los em consultas por meio doCONTAINSTEXT operador.
DICTIONARY - Esses índices são semelhantes aos que usam UNIQUE, mas no caso de chaves duplicadas, eles substituem o registro existente pelo novo registro.
Índice Hash
Ele tem um desempenho mais rápido e é muito leve no uso do disco. É durável, transacional, mas não oferece suporte a consultas de intervalo. Ele funciona como o HASHMAP, o que o torna mais rápido em pesquisas pontuais e consome menos recursos do que outros tipos de índice. Os diferentes tipos de plug-ins que suportam este algoritmo são -
UNIQUE_HASH_INDEX- Esses índices não permitem chaves duplicadas. Para índices compostos, refere-se à exclusividade das chaves compostas.
NOTUNIQUE_HASH_INDEX - Esses índices permitem chaves duplicadas.
FULLTEXT_HASH_INDEX- Esses índices são baseados em qualquer palavra do texto. Você pode usá-los em consultas por meio do operador CONTAINSTEXT.
DICTIONARY_HASH_INDEX - Esses índices são semelhantes aos que usam UNIQUE_HASH_INDEX, mas em casos de chaves duplicadas, eles substituem o registro existente pelo novo registro.
Lucene Full Text Index
Ele fornece bons índices de texto completo, mas não pode ser usado para indexar outros tipos. É durável, transacional e oferece suporte a consultas de intervalo.
Lucene Spatial Index
Ele fornece bons índices espaciais, mas não pode ser usado para indexar outros tipos. É durável, transacional e oferece suporte a consultas de intervalo.
Criação de índices
Criar índice é um comando para criar um índice em um esquema específico.
A instrução a seguir é a sintaxe básica para criar um índice.
CREATE INDEX <name> [ON <class-name> (prop-names)] <type> [<key-type>]
[METADATA {<metadata>}]
A seguir estão os detalhes sobre as opções na sintaxe acima.
<name>- Define o nome lógico do índice. Você também pode usar a notação <class.property> para criar um índice automático vinculado a uma propriedade de esquema. <class> usa a classe do esquema e <property> usa a propriedade criada na classe.
<class-name>- Fornece o nome da classe que você está criando o índice automático para indexar. Esta classe deve existir no banco de dados.
<prop-names>- Fornece a lista de propriedades que você deseja que o índice automático indexe. Essas propriedades já devem existir no esquema.
<type> - Fornece o algoritmo e o tipo de índice que você deseja criar.
<key-type> - Fornece o tipo de chave opcional com índices automáticos.
<metadata> - Fornece a representação JSON.
Exemplo
Tente a consulta a seguir para criar um índice automático vinculado à propriedade 'ID' do usuário sales_user.
orientdb> CREATE INDEX indexforID ON sales_user (id) UNIQUE
Se a consulta acima for executada com sucesso, você obterá a seguinte saída.
Creating index...
Index created successfully with 4 entries in 0.021000 sec(s)
Consultando índices
Você pode usar a consulta selecionada para obter os registros no índice.
Tente a seguinte consulta para recuperar as chaves do índice denominado 'indexforId'.
SELECT FROM INDEX:indexforId
Se a consulta acima for executada com sucesso, você obterá a seguinte saída.
----+------+----+-----
# |@CLASS|key |rid
----+------+----+-----
0 |null |1 |#11:7
1 |null |2 |#11:6
2 |null |3 |#11:5
3 |null |4 |#11:8
----+------+----+-----
Índices de queda
Se você quiser eliminar um índice específico, pode usar este comando. Esta operação não remove os registros vinculados.
A instrução a seguir é a sintaxe básica para eliminar um índice.
DROP INDEX <name>
Onde <name> fornece o nome do índice que você deseja eliminar.
Tente a seguinte consulta para eliminar um índice denominado 'ID' do usuário sales_user.
DROP INDEX sales_users.Id
Se a consulta acima for executada com sucesso, você obterá a seguinte saída.
Index dropped successfully