Skip to content

¿Por qué Cassandra aconseja crear un índice en las columnas de alta cardinalidad?

Posted in Articles

La documentación de Cassandra declara,

No utilice índices en estas situaciones:

  • En columnas de alta cardinalidad, a medida que consulta un gran volumen de registros para un pequeño número de resultados. Consulte Problemas para usar un alto índice de columna de cardinalidad a continuación.

continúa,

Si crea un índice en una columna de alta cardinalidad, que tiene muchos valores distintos, una consulta entre los campos resultará en una gran cantidad de investigaciones por muy pocos resultados. En la tabla con mil millones de canciones, busque canciones por autor (un valor generalmente único para cada canción) en lugar de por su artista, es probable que sea muy ineficaz. Probablemente sería más eficiente mantener la tabla manualmente como un índice en lugar de usar el índice incorporado de Cassandra. Para las columnas que contienen datos únicos, a veces es sabio, en términos de rendimiento, use un índice para mayor comodidad, siempre que el volumen de consulta a la tabla que tenga una columna indexada sea moderada y no esté bajo una carga constante.

pero nunca responde realmente a la pregunta: ¿Por qué es ineficaz? No tengo idea de qué «Mantenimiento manual de la tabla como forma de índice» significa «. Pero entonces, contradice algo con «… a veces es muy sabio usar un índice para la conveniencia siempre que el volumen de la consulta sea moderado …»

es: esto solo trata de decirme Para usar la PK cuando y dónde puedo? ¿Qué es la ineficiencia? De lo que entiendo, una consulta que llegaría a un índice debe consultar todos los nodos del clúster, entonces cada nodo hará una búsqueda en su índice local y los resultados se agregarían. No es necesariamente costoso (cada búsqueda de índices debe ser bastante barata), excepto que pagamos en la latencia de la red porque tenemos que esperar al nodo más lento del lote. ¿Falta algo aquí?

Pero si tengo una colección que tiene un Bajill de artículos que, en raras ocasiones, debe buscarse un atributo diferente pero casi único … es un uso apropiado , ¿verdad?

¹tout? IDK Si la replicación significa que esto puede tocar 1/3 del clúster para un factor de replicación de 3 o no?

Be First to Comment

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *