1AN index (dřívější název: sekundární index) poskytuje prostředky pro přístup k datům v Cassandře pomocí jiných polí než primárního klíče než klíč oddílu. Výhodou je rychlé a efektivní vyhledávání dat odpovídající dané podmínce. Ve skutečnosti, pokud v normálním sloupci není žádný index, není dokonce povoleno podmíněně dotazovat sloupec.
index indexuje hodnoty sloupců v samostatné skryté rodině sloupců (tabulka) od té, která obsahuje indexované hodnoty. Data indexu jsou pouze lokální, což znamená, že nebudou replikována do jiných uzlů. To také znamená, že pro datový dotaz podle indexovaného sloupce musí být požadavky předány všem uzlům, čekající na všechny rezonance a poté jsou výsledky sloučeny a vráceny. Pokud tedy máte mnoho uzlů, odpověď dotazu se zpomalí, protože do clusteru je přidáno více strojů.
upozornění:
podle aktuální verze (2.0.7) Apache Cassandra můžete dotazovat pouze indexovaným sloupcem s podmínkou porovnání rovnosti. Výběr rozsahu nebo pořadí podle indexovaného sloupce není podporováno. Důvodem je, že klíče uložené v rodině skrytých sloupců jsou netříděné.
kdy použít Index?
vestavěné indexy 2Cassandra jsou nejlepší v tabulce s mnoha řádky, které obsahují indexovanou hodnotu. Čím více jedinečných hodnot existuje v konkrétním sloupci, tím více budete mít režii pro dotazování a udržování indexu. Předpokládejme například, že jste měli tabulku seznamů skladeb s miliardou skladeb a chtěli jste vyhledat skladby od umělce. Mnoho skladeb bude sdílet stejnou hodnotu sloupce pro umělce. Sloupec umělec je dobrým kandidátem na index.
kdy Index nepoužívat?
2Do není použít index v těchto situacích:
- Na high-mohutnost sloupců, protože pak dotaz obrovské množství záznamů pro malý počet výsledků
- V tabulkách, které používají počítadlo sloupce
- Na často aktualizované nebo odstraněné sloupce
- podívejte se na řádku v velký oddíl, pokud těsně dotazu