Я использую Windows Azure и впервые захожу в хранилище таблиц Azure, чтобы сделать мое приложение масштабируемым для трафика с высокой плотностью загрузки.
Моя цель проста - регистрировать каждый входящий запрос по набору параметров и для подсчета количества или суммирования данных из журнала. В этом я предложил 2 варианта, и я хотел бы знать, что более опытные люди считают лучшим вариантом.
Вариант 1: использовать логические значения и считать «истинные» строки
Поскольку каждая строка записывается один раз и никогда не обновляется, сохраняйте каждый параметр подсчета как логическое значение и в потоке суммирования, извлекайте строки в запросе и выполняйте подсчет для каждого набора истинных значений, чтобы получить итоговые значения для каждого параметра.
Это позволило бы сэкономить место при большом количестве параметров, поскольку я представляю, что таблицы Azure хранят bool как одноразрядное значение.
Вариант 2: использовать значения Int и суммировать строки
Каждая строка записана, как указано выше, но вместо этого каждый столбец параметра добавляется в качестве значения 0 или 1. Суммирование может происходить путем запроса всех строк и использования операции Sum для каждого столбца. Это будет быстрее, потому что суммирование может произойти в одном запросе, но я теряю что-то при хранении 32-битных целых чисел для логического значения?
Я думаю, что на данный момент для скорости запросов лучше всего подходит вариант 2, но я хочу спросить вслух, чтобы узнать мнения об аспектах хранения и извлечения, потому что я не очень хорошо знаю таблицы Azure (и я надеюсь, что это помогает другим людям в будущем).