Я читал об индексах в Cassandra, но я немного запутался, когда дело доходит до создания индекса для коллекции, такой как набор, список или карта.
Допустим, у меня есть следующая таблицаи индексировать пользователей, как показано ниже:
CREATE TABLE chatter.channels (
id text PRIMARY KEY,
users set<text>
);
CREATE INDEX channels_users_idx ON chatter.channels (values(users));
INSERT INTO chatter.channels (id, users) VALUE ('ch1', {'jeff', 'jenny'});
. В документах, по крайней мере то, что я обнаружил до сих пор, говорится, что это может иметь огромное снижение производительности, поскольку индексы создаются локально на узлах.И все приведенные примеры обращаются к таблицам, как показано ниже:
SELECT * FROM chatter.channels WHERE users CONTAINS 'jeff';
Насколько я понимаю, это приведет к снижению производительности, поскольку ключ раздела не указан и все узлы должны быть запрошены.Тем не менее, если бы я выполнил запрос, подобный приведенному ниже
SELECT * FROM chatter.channels WHERE id = 'ch1' AND users CONTAINS 'jeff';
(с указанием ключа раздела), тогда у меня все еще был бы скачок производительности?
Как я мог бы проверить это длясебя?В SQL я могу запустить EXPLAIN и получить некоторую полезную информацию.Есть ли что-то похожее в Кассандре?