Skip to content

Por que a Cassandra aconsella crear un índice en columnas de cardinalidade elevadas?

Posted in Articles

Documentación de Cassandra declara,

Non use índices nestas situacións:

  • En columnas de cardinalidade elevadas, como consulte un gran volume de rexistros para un pequeno número de resultados. Vexa os problemas para usar un índice de columna de cardinalidade elevado a continuación.

Continúa,

Se creas un índice nunha columna de cardinalidade elevada, que ten moitos valores distintos, unha consulta entre os campos producirá moita investigación por moi poucos resultados. Na mesa con mil millóns de cancións, busque cancións por autor (un valor xeralmente único para cada canción) en lugar de polo seu artista, é probable que sexa moi ineficaz. Probablemente sería máis eficiente para manter manualmente a mesa como índice no canto de usar o índice incorporado de Cassandra. Para columnas que conteñen datos exclusivos, ás veces é sabio, en termos de rendemento, use un índice para obter máis comodidade, sempre que o volume de consulta ata a táboa que teña unha columna indexada é moderada e que non estea baixo unha carga constante.

Pero nunca responde realmente a pregunta: por que é ineficaz? Non teño idea de que “Mantemento manual da mesa como forma de índice” significa “. Pero, entón, contradi un pouco con “… ás veces é moi sabio usar un índice de conveniencia sempre que o volume da consulta sexa moderada …”

é: isto só intenta dicirme Usar o PK cando e onde podo? Que é a ineficiencia? Do que entendo, unha consulta que chegaría a un índice debería consultar todos os nodos do clúster, entón cada nodo faría unha busca no seu índice local e os resultados serían agregados. Non é necesariamente caro (cada busca de índices debe ser bastante barato), agás que pagamos en latencia de rede porque temos que esperar o nodo máis lento do lote. Estou faltando algo aquí?

Pero se teño unha colección que ten un bajill de elementos que – en raras ocasións – debe ser solicitado por un atributo diferente pero case único … é un uso adecuado , non?

¹Tout? IDK Se a replicación significa que isto pode tocar 1/3 do clúster para un factor de replicación de 3 ou non?

Be First to Comment

Deixa unha resposta

O teu enderezo electrónico non se publicará Os campos obrigatorios están marcados con *