Skip to content

Per què Cassandra aconsella a crear un índex a columnes d’alta cardinalitat?

Posted in Articles

Documentació de Cassandra declara,

No utilitzeu índexs en aquestes situacions:

  • En columnes d’alta cardinalitat, a continuació, consulteu un gran volum de registres per a un nombre reduït de resultats. Vegeu problemes per utilitzar un índex de columna d’alta cardinalitat a continuació.

Continua,

Si creeu un índex en una columna alta de cardinalitat, que té molts valors diferents, una consulta entre els camps donarà lloc a moltes investigacions per a molt pocs resultats. A la taula amb mil milions de cançons, la recerca de cançons per autor (un valor generalment únic per a cada cançó) en lloc del seu artista, és probable que sigui molt ineficaç. Probablement seria més eficient mantenir manualment la taula com a índex en lloc d’utilitzar l’índex integrat de Cassandra. Per a columnes que continguin dades úniques, de vegades és prudent, en termes de rendiment, utilitzeu un índex per a més comoditat, sempre que el volum de consulta a la taula que tingui una columna indexada sigui moderada i no estigui sota una càrrega constant.

Però mai no respon a la pregunta: per què és ineficaç? No tinc idea del que “manteniment manual de la taula com a forma d’índex” significa “. Però, a continuació, contradiu una mica amb “… de vegades és molt aconsellable utilitzar un índex de conveniència, sempre que el volum de la consulta sigui moderada …”

és, això intenta dir-me Per utilitzar el PK quan i on puc? Què és la ineficiència? A partir del que entenc, una consulta que arribaria a un índex ha de consultar tots els nodes del clúster, a continuació, cada node faria una cerca en el seu índex local i els resultats s’agregen. No és necessàriament costós (cada cerca d’índexs ha de ser bastant barata), excepte que paguem a la latència de la xarxa perquè hem d’esperar el node més lent del lot. M’he perdut alguna cosa aquí?

Però si tinc una col·lecció que té un bajill d’articles que, en rares ocasions, cal buscar un atribut diferent, però gairebé únic … és un ús adequat , oi?

¹Tout? Idk si la replicació vol dir que això pot tocar 1/3 del clúster per a un factor de replicació de 3 o no?

Be First to Comment

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *