Оптимизировать запрос Кассандры
-
28-10-2019 - |
Вопрос
Я пытаюсь оптимизировать некоторые запросы Cassandra, которые я использую ключ строки в качестве критериев. Поэтому я сомневаюсь, что, учитывая процесс сравнения клавиши строки внутри Кассандры, что будет лучшим для этого 'key_validation_class?
Есть ли у UTF8Type худшая производительность, чем int32type? На данный момент я использую некоторые объединенные значения, чтобы создать свой ключ строки в качестве UTF8Type, но я любезно боюсь, что это будет плохой подход.
Заранее спасибо.
Решение
key_validation_class это просто удобный намек на Кассандра для обеспечения соблюдения критериев проверки на ключе. Думайте об этом как о ограничении. Кассандра работает только с байтами. Это вряд ли вызовет любые проблемы с производительностью.
Размер «ключевого имени», как правило, не является проблемой, поскольку он находится в разумных пределах (скажем, 64-128 байтов абсолютно нормально).
Решение, если лучше использовать UTF или Int32, в основном обусловлено необходимостью разделения данных и выполнения ломтиков диапазона.
Основная сила Кассандры - поиск ключей - так что не беспокойтесь о ключевом имени в начале. Потратьте больше времени на разработку колонн, где правильные дизайнерские решения будут окупаться.