Ucz się Cassandry

1indeks (dawna nazwa: indeks wtórny) zapewnia dostęp do danych w Cassandrze przy użyciu innych niż podstawowe pól klucza niż klucz partycji. Zaletą jest szybkie, efektywne wyszukiwanie danych pasujących do danego warunku. W rzeczywistości, jeśli w zwykłej kolumnie nie ma indeksu, nie można warunkowo kwerendować przez kolumnę.

indeks indeksuje wartości kolumn w oddzielnej, ukrytej rodzinie kolumn (tabeli) od tej, która zawiera wartości indeksowane. Dane indeksu są tylko lokalne, co oznacza, że nie będą replikowane do innych węzłów. Oznacza to również, że dla zapytania o dane przez indeksowaną kolumnę, żądania muszą być przekazywane do wszystkich węzłów, czekając na wszystkie Rezonanse, a następnie wyniki są scalane i zwracane. Więc jeśli masz wiele węzłów, odpowiedź na zapytanie spowalnia, gdy więcej maszyn jest dodawanych do klastra.

Uwaga:

w bieżącej wersji (2.0.7) Apache Cassandra można było odpytywać tylko za pomocą zindeksowanej kolumny z warunkiem porównania równości. Wybór zakresu lub kolejność-by przez indeksowana kolumna nie jest obsługiwana. Powodem jest to, że klucze przechowywane w rodzinie kolumn ukrytych są nieposortowane.

kiedy używać indeksu?

2cassandra ’ s wbudowane indeksy są najlepsze w tabeli z wieloma wierszami, które zawierają indeksowaną wartość. Im więcej unikalnych wartości znajduje się w danej kolumnie, tym więcej narzutu na zapytania i utrzymanie indeksu. Załóżmy na przykład, że masz tabelę playlist z miliardem utworów i chcesz wyszukać utwory artysty. Wiele utworów będzie miało tę samą wartość kolumny dla wykonawcy. Artist column jest dobrym kandydatem do indeksu.

kiedy nie używać indeksu?

2nie używaj indeksu w takich sytuacjach:

  • w kolumnach o wysokiej cardinalności, ponieważ następnie odpytywasz ogromną ilość rekordów o niewielką liczbę wyników
  • w tabelach, które używają kolumny licznika
  • W często aktualizowanej lub usuniętej kolumnie
  • , aby wyszukać wiersz na dużej partycji, chyba że zostanie wąsko zapytany

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.