O que são índices de cobertura?

No mundo relacional/SQL, é possível economizar tempo de consulta com o uso criterioso de índices: se você tiver um índice em cada coluna que a consulta tocar, o DBMS poderá retornar os resultados sem ter que mergulhar nas próprias tabelas.

Esses são índices de cobertura.

O que são índices de cobertura no Couchbase?

O Couchbase Server 4.1 traz os índices de cobertura para o N1QL. Se você tiver um índice que cubra todos os dados exigidos pela sua consulta N1QL, o Couchbase Server poderá retornar os dados diretamente desse índice. Isso elimina pelo menos uma, e possivelmente várias, leituras de documentos do processo de consulta.

Como isso funciona?

Quando você envia uma consulta N1QL ao Couchbase, ela passa pelas seguintes etapas:

  1. Analisa sua consulta, analisa o que ela faz e, em seguida, cria um plano de consulta.
  2. Verifica os índices relevantes.
  3. Obtém as chaves dos documentos que contêm os resultados e, em seguida, busca os próprios documentos.
  4. Extrai os dados relevantes desses documentos para criar o resultado.
  5. Retorna o resultado para seu aplicativo.

Com um índice de cobertura, todos os dados do resultado estão no próprio índice, portanto, você elimina as etapas 3 e 4.

Como uso os índices de cobertura?

Nada muda na forma como você escreve suas consultas. Em vez disso, o que importa é como você configura os índices. Um único índice - GSI ou visualização - deve abranger todas as chaves JSON que sua consulta tocar.

Tem um exemplo?

Digamos que estejamos armazenando perfis de clientes. Eles podem ter a seguinte aparência:

{

"nome": "Sherlock Holmes",

"endereço": "221b Baker Street",

"city" (cidade): "London",

"country": "UK",

"newsletter": true,

"joinedDate": 1168041600

}

Se quiséssemos encontrar o nome e a cidade de todos os assinantes do nosso boletim informativo, poderíamos escrever uma consulta N1QL como esta:

Sem um índice de cobertura, essa consulta extrairia nome e cidade de nossos registros de clientes, fazendo uma consulta a esses documentos.

Podemos criar um índice de cobertura para essa consulta da seguinte forma:

Agora, a consulta pode ser satisfeita inteiramente a partir do índice.

Onde posso ler mais?

Há um seção sobre cobertura de índices na documentação do Couchbase Server.

Autor

Postado por Matthew Revell, líder de suporte ao desenvolvedor, EMEA, Couchbase

Matthew Revell é um dos principais defensores do desenvolvimento do Couchbase na região EMEA. Ele desenvolveu uma estratégia global para colocar o Couchbase na mente dos desenvolvedores do produto.

Deixar uma resposta