Skip to content

De ce Cassandra sfătuiește să creeze un index pe coloane de carton înalt?

Posted in Articles

documentația lui Cassandra declară,

Nu utilizați indexuri în aceste situații:

  • Pe coloane cu cardinalitate ridicată, pe măsură ce solicitați apoi un volum imens de înregistrări pentru un număr mic de rezultate. Consultați problemele pentru utilizarea unui indice coloanei de înaltă calitate.

ea continuă,

Dacă creați un index pe o coloană de înaltă carton, care are multe valori distincte, o interogare între câmpuri va duce la o mulțime de cercetări pentru foarte puține rezultate. În tabel cu un miliard de melodii, căutați melodii de către autor (o valoare generală unică pentru fiecare melodie), mai degrabă decât de către artistul lor, este probabil să fie foarte ineficientă. Ar fi probabil mai eficient să țineți manual tabelul ca index în loc să utilizați indicele încorporat al lui Cassandra. Pentru coloanele care conțin date unice, este uneori înțelept, în ceea ce privește performanța, utilizați un index pentru mai multă confort, atâta timp cât volumul interogării la tabelul având o coloană indexată este moderat și nu este sub o sarcină constantă.

Dar nu răspunde niciodată la întrebarea: De ce este ineficient? Nu am nici o idee ce înseamnă „întreținerea manuală a tabelului ca formă de index”. Dar apoi, acesta contrazice oarecum cu „… Este uneori foarte înțelept să folosiți un index pentru confort atâta timp cât volumul interogării este moderat …”

este- acest lucru doar încercați să-mi spuneți Pentru a folosi PK când și unde pot? Ce este ineficiența? Din ceea ce înțeleg, o interogare care ar ajunge la un indice ar trebui să interogheze toate nodurile clusterului, atunci fiecare nod ar face o căutare în indicele său local și rezultatele ar fi apoi agregate. Nu este neapărat costisitoare (fiecare căutare pentru indexuri trebuie să fie destul de ieftină), cu excepția cazului în care plătim în latența rețelei, deoarece trebuie să așteptăm cel mai lent nod al lotului. Îmi lipsește ceva aici?

Dar dacă am o colecție care are un Bajill de articole care – în rare ocazii – trebuie să fie căutat de un atribut diferit, dar aproape unic … este o utilizare adecvată , nu?

¹Tout? IDK dacă replicarea înseamnă că acest lucru poate atinge 1/3 din cluster pentru un factor de replicare de 3 sau nu?

Be First to Comment

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *