Предположим, что у меня есть данные с 100 столбцов, и я хочу, чтобы поддержать (совокупность) запросов на 70 из этих 100 столбцов, Что лучше структура данных я могу использовать здесь:Эффективная структура данных для агрегированных данных по нескольким столбцам
Пример: 5 колонок (studentGender, studentClass, studentGrade, studentAttendanceGrade, studentCoin)
и теперь я хочу, чтобы поддержать 3 агрегатные запросы типа:
- сумма studentCoins по studentGrade
- сумма studentCoins по studentClass
- сумма studentCoins по studentGender
Пожалуйста, не дают SQL решение, я говорю о программе C со структурой данных и ввода (вектор размера 5) приходит в реальном времени и я не могу хранить сырые гранулированные данные, если не существует эффективного решения.
Одним из решений является сохранение 3 хэш-таблиц по одному для каждого типа запроса. Но это решение трудно расширить, потому что в будущем, если мы поддержим 100 столбцов и 70 запросов, тогда в этом случае нам необходимо поддерживать 70 хэш-таблиц по одному для каждого типа запросов
Не могли бы вы описать ваши решения хэш-таблиц правильно? – Sigstop
Если в обновлениях преобладают запросы, сохраните результаты для частых запросов в актуальном состоянии. Значения атрибутов _If_ вряд ли будут очень редки, итерационные массивы могут быть достаточно хорошими (рассмотрите кодирование _many_ атрибутов в «машинные слова» таким образом, который легко маскируется (_bit fields_)). – greybeard
Если вы говорите о программе C, почему вы отметили этот C++? Кто-то может написать ответ, используя [''] (http://en.cppreference.com/w/cpp/algorithm), который вы тогда не могли использовать ... –
DevSolar