Во-первых - это сильно зависит от структуры таблицы - если у вас есть userid
в качестве ключа раздела, вы, конечно, можете использовать вторичный индекс для поиска пользователей в городах, но он не оптимален, так как это разветвленный вызов - запросотправляется на все узлы в кластере.Вы можете изменить дизайн, чтобы использовать материализованное представление с городом в качестве ключа раздела, но у вас могут возникнуть проблемы, если в некоторых городах много пользователей.
В общем, если вам нужно выбрать несколько значений в одном и том жеcolumn - вы можете использовать оператор IN
, но лучше не использовать его для ключей секционирования (лучше параллельные запросы).Если вам нужно OR
для разных столбцов - вам нужно выполнять параллельные запросы и собирать результаты на стороне приложения.