Skip to content

Por que a Cassandra aconselha a criar um índice em colunas de alta cardinalidade?

Posted in Articles

cassandra’s Documentation declara,

Não use índices nestas situações:

  • Em colunas de cardinalidade alta, como você consulta um enorme volume de gravações para um pequeno número de resultados. Consulte Problemas para usar um índice de coluna de alta cardinalidade abaixo.

Continua,

Se você criar um índice em uma coluna de cardinalidade alta, que tem muitos valores distintos, uma consulta entre os campos resultará em muita pesquisa para poucos resultados. Na tabela com um bilhão de músicas, procure por músicas por autor (um valor geralmente único para cada música) em vez de seu artista, é provável que seja muito ineficaz. Provavelmente seria mais eficiente segurar manualmente a mesa como um índice em vez de usar o índice integrado de Cassandra. Para colunas contendo dados exclusivos, às vezes é sábio, em termos de desempenho, use um índice para mais conveniência, desde que o volume de consulta para a tabela com uma coluna indexada seja moderada e não esteja sob uma carga constante.

mas nunca realmente responde a pergunta: Por que é ineficaz? Não tenho ideia do que “manutenção manual da tabela como forma de índice” significa “. Mas, em seguida, contradiz um pouco com “… Às vezes é muito sábio usar um índice por conveniência, desde que o volume da consulta seja moderado …”

Isso é – isso apenas tenta me dizer Para usar o pk quando e onde posso? O que é ineficiência? Pelo que eu entendo, uma consulta que iria alcançar um índice deve consultar todos os nós do cluster, em seguida, cada nó faria uma pesquisa em seu índice local e os resultados seriam agregados. Não é necessariamente caro (cada busca por índices deve ser bastante barato), exceto que pagamos em latência de rede porque temos que esperar pelo nó mais lento do lote. Estou perdendo alguma coisa aqui?

Mas se eu tiver uma coleção que tenha um bajill de itens que – em ocasiões raras – deve ser procurado por um atributo diferente, mas quase único … é um uso apropriado , certo?

¹tout? Idk se a replicação significa que isso pode tocar 1/3 do cluster para um fator de replicação de 3 ou não?

Be First to Comment

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *