Skip to content

Perché Cassandra consiglia di creare un indice sulle colonne ad alta cardinalità?

Posted in Articles

Documentazione di Cassandra dichiara,

Non utilizzare gli indici in queste situazioni:

  • Sulle colonne ad alta cardinalità, mentre interroga un enorme volume di record per un piccolo numero di risultati. Vedere Problemi per l’utilizzo di un indice ad alta cardinalità di cardinalità di seguito.

Continua,

Se si crea un indice su una colonna di cardinalità elevata, che ha molti valori distinti, una query tra i campi comporterà molte ricerche per pochissimi risultati. Nel tavolo con un miliardo di canzoni, cerca canzoni per autore (un valore generalmente unico per ogni canzone) piuttosto che dal loro artista, è probabile che sia molto inefficace. Probabilmente sarebbe più efficiente per tenere manualmente il tavolo come indice invece di utilizzare l’indice incorporato di Cassandra. Per colonne contenenti dati unici, a volte è saggio, in termini di prestazioni, utilizzare un indice per più praticità, purché il volume della query sulla tabella avente una colonna indicizzata sia moderata e non è sotto un carico costante.

Ma non risponde mai davvero la domanda: perché è inefficace? Non ho idea di cosa significa “Manutenzione manuale della tabella come mezzo indice”. Ma poi, contraddice un po ‘con “… è talvolta molto saggio usare un indice per comodità purché il volume della query è moderato …”

è: questo cerca solo di dirmi Per usare il PK quando e dove posso? Qual è l’inefficienza? Da quello che capisco, una query che avrebbe raggiunto un indice dovrebbe interrogare tutti i nodi del cluster, quindi ogni nodo farebbe una ricerca nel suo indice locale e i risultati sarebbero quindi aggregati. Non è necessariamente costoso (ogni ricerca degli indici deve essere piuttosto economica) tranne che paghiamo nella latenza di rete perché dobbiamo aspettare il nodo più lento del lotto. Mi manca qualcosa qui?

Ma se ho una collezione che ha una bajill di oggetti che – in rare occasioni – in rare occasioni – devono essere ricercati da un attributo diverso ma quasi unico … è un uso appropriato , giusto?

¹Tout? IDK Se la replica significa che questo può toccare 1/3 del cluster per un fattore di replicazione di 3 o no?

Be First to Comment

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *