Может кто-нибудь сказать мне differnce между созданием вторичного индекса против создания индекса CF вручную в Кассандреразница между созданием вторичного индекса против создания индекса CF вручную в Кассандре
ответ
Вторичные индексы в Кассандре сохраняются и поддерживаются на каждом узел. Таким образом, при фильтрации по второстепенному индексу Cassandra нужно будет выполнять поиск на каждом узле, а затем возвращать комбинированные результаты. Поэтому фильтрация по вторичным индексам может быть значительно медленнее, чем фильтрация по ключу раздела (по моим тестам она может быть в 10 раз медленнее, в зависимости от ваших данных и топологии).
Поддержание собственной индексной таблицы более эффективно для большинства случаев использования, но вам нужно иметь дело с обновлением индексной таблицы самостоятельно. Кроме того, вам нужно будет выполнить два запроса для извлечения ваших данных: запрос, который запрашивает индексную таблицу, а другой - для получения фактических данных.
Другим решением было бы полное дублирование ваших данных и создание двух таблиц с одинаковой структурой, но с разными ключами.
Если производительность является вашей главной задачей, то перейдите к таблице индексов или дублированной таблице. Если вам нужна простота и вы можете себе позволить некоторое снижение производительности, используйте вторичные индексы, но я рекомендую провести некоторое тестирование производительности заранее.