Learn Cassandra

1AN index (entinen nimi: secondary index) tarjoaa keinot päästä käsiksi Cassandran tietoihin käyttämällä muita kuin ensisijaisia avainkenttiä kuin osioavainta. Etuna on nopea, tehokas tietojen haku, joka vastaa tiettyä ehtoa. Itse asiassa, jos normaalissa sarakkeessa ei ole indeksiä, pylväs ei edes salli ehdollista kyselyä.

indeksi indeksoi sarakkeen arvot erillisessä piilotetussa sarakeperheessä (taulukossa) siitä, joka sisältää indeksoitavat arvot. Indeksin data on vain paikallista, mikä tarkoittaa, että sitä ei monisteta muihin solmuihin. Tämä tarkoittaa myös sitä, että indeksoidun sarakkeen datakyselyä varten pyynnöt on toimitettava kaikille solmuille odottamaan kaikkia resonoita, minkä jälkeen tulokset yhdistetään ja palautetaan. Jos siis solmuja on paljon, kyselyvaste hidastuu, kun klusteriin lisätään lisää koneita.

Varoitus:

nykyisessä Apache Cassandran versiossa (2.0.7) pystyi kyselemään vain indeksoidulla sarakkeella, jossa oli tasa-arvovertailuehto. Range select tai order-by by a indexed column ei tueta. Syynä on se, että piilotettuun palstaperheeseen tallennetut avaimet ovat lajittelemattomia.

milloin indeksiä käytetään?

2cassandran sisäänrakennetut indeksit ovat parhaiten pöydällä, jossa on monta riviä, jotka sisältävät indeksoidun arvon. Enemmän ainutlaatuisia arvoja, jotka ovat olemassa tietyn sarakkeen, enemmän yläpuolella sinulla on kyselyä ja ylläpitää indeksi. Oletetaan esimerkiksi, että sinulla on soittolistataulukko, jossa on miljardi kappaletta ja haluat etsiä artistin kappaleita. Monet kappaleet jakavat artistille saman palstan arvon. Taiteilijapalsta on hyvä ehdokas indeksiksi.

milloin indeksiä ei saa käyttää?

2do ei käytä indeksiä näissä tilanteissa:

  • korkeakardinaalisilla sarakkeilla, koska silloin kysytään valtava määrä tietueita pienellä tuloksella
  • taulukoissa, joissa käytetään laskuriveä
  • usein päivitetyllä tai poistetulla sarakkeella
  • etsi rivi suuresta osiosta, ellei suppeasti kysytä

Vastaa

Sähköpostiosoitettasi ei julkaista.