Выполнение запроса только с ключом раздела
Влияет ли это на производительность, если при запросе таблицы, содержащей как ключ раздела, так и ключ кластеризации, я предоставляю только ключ раздела?
Например, для таблицы с ключом раздела p1 и ключом кластеризации c1, будет
SELECT * FROM table1 where p1 = 'abc';
быть менее эффективным, чем
SELECT * FROM table1 where p1 = 'abc' and c1 >= 'some range start value' and c1 <= 'some range end value';
Моя цель - получить все строки с p1 = 'abc'.
1 ответ
Основные затраты при переходе к определенной строке по сравнению с определенным разделом - это дополнительная работа и необходимость десериализации индекса ключа кластеризации в начале раздела. Это немного старый и основанный на бережливости, но суть этого остается верной в следующем:
http://thelastpickle.com/blog/2011/07/04/Cassandra-Query-Plans.html(примечание: фильтр цветения на уровне строк был удален)
При чтении с начала раздела вы можете сэкономить немного работы, что улучшит время ожидания.
Я бы не стал сильно беспокоиться об этом, если ваши запросы не охватывают несколько разделов. Тогда у вас, как правило, будут проблемы только в том случае, если размер разделов достигает сотен мегабайт или гигабайт.