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