Я не знаю, о чем вы говорите для сканирования индекса.Если кешированный ключ заполнен, он точно сообщит вам, существует ли ключ на диске.
Каждый sstable имеет фильтр Блума, который находится в памяти и некоторые метаданные, которые могут помочь, но не могут гарантировать это.Фильтр Блума точно скажет вам, если он не существует, но может дать ложное срабатывание.Есть статистика, которую вы можете проверить, и вы можете установить процент ложных срабатываний.Кроме того, у каждого sstable есть токен min / max и ключ кластеризации min / max, который, если ваш ключ не существует в нем, также может исключить его из возможности.
К сожалению, вы не можете выполнить это без фактического чтения, поэтомукак только он находит sstable, он пытается читать с него.Вы можете сделать LIMIT 1
, чтобы хотя бы минимизировать это.Вы также можете поместить в свое приложение кеш ключей, которые, как вы знаете, существуют или не существуют, если вы согласны с тем, что они потенциально не синхронизированы.И какой-то механизм их выселения при добавлении или удалении.