Utwórz indeks tworzy indeks wtórny dla tabeli. W języku Kasandra dane są przechowywane w partycjach w węzłach - jedna partycja odpowiada jednemu kluczowi partycji - który jest pierwszym kluczem klucza podstawowego. Pozostałe klucze w kluczu podstawowym stanowią klucze do klastrowania. Na przykład, jeśli miał następujące:
CREATE TABLE foo.people (id int , nazwa tekstu wiek int, tekst pracy, PRIMARY KEY (id, nazwa, praca) )
id będzie kluczem partycji, a nazwa i zadanie będą kluczami do klastrowania.
Dane w partycji są przechowywane według kolejności kluczy klastrowych. Podczas wysyłania zapytań za pomocą filtrów określasz klucz partycji, a następnie możesz filtrować na podstawie kluczy klastrowych. W przypadku kluczy wielokrotnego tworzenia klastrów musisz określić wcześniejszą klastrowanie, aby użyć konkretnej. Na przykład, we wspomnianym scenariuszu można zrobić
gdzie id = 2 a name = 'John' i praca = 'dev' lub gdzie id = 2 a name = 'John'
ale nie gdzie id = 2 i job = 'dev' jak nazwa pojawia się przed zadaniem w kluczu klastrowania.
Nie można filtrować według wieku, ponieważ nie jest częścią klucza. Tutaj pojawia się indeks wtórny. Jeśli wykonasz: utwórz indeksu bla na ludzi (wiek)
będziesz mógł to zrobić: wybierz * od osób, w których wiek = 45;
Może to być potencjalnie kosztowne, ponieważ spowoduje wysłanie zapytania do klastra. Następujące elementy mogą być wydajne: wybierz * od osób, których id = 2 i wiek = 45;
Jest to przydatne w przypadku szeregów czasowych lub innych formatów szerokiego rzędu.
Zapytania o wskaźniki wtórne są restrykcyjne - na przykład nie można wykonywać zapytań dotyczących zakresu - ogranicza się to do = sprawdzeń.
Wtórne indeksy w kassandra mogą zaoszczędzić Ci kłopotów z utrzymaniem tabel indeksów i są bardziej wydajne niż gdybyś zrobił to ręcznie. W końcu są spójne (twoje zapisy nie czekają na zaktualizowanie indeksów, aby powrócić do sukcesu), a obecnie informacje o indeksie dla danych węzła są przechowywane lokalnie.
Wreszcie można znaleźć indeksy aktualnie z tabeli "IndexInfo" w systemie keyspace.
Nadzieję, że pomaga.
możesz pomóc w tym: http://stackoverflow.com/questions/ 24964673/can-to-start-cqlsh-in-mac-os-x – eagertoLearn
done :) sprawdź to –
możesz podać przykład ilustrujący ten punkt: Wtórne indeksy nie powinny być używane, gdy zapytanie na indeksie pobierze zawsze jeden wynik (np. wprowadzenie indeksu wtórnego na uuid). – eagertoLearn