Как лучше всего хранить большое количество данных в базе данных?
Мне нужно хранить значения различных датчиков окружающей среды с отметками времени.
Я сделал несколько тестов с SQLCE, он отлично работает для нескольких 100 000 строк, но если он дойдет до миллионов, выбор будет ужасно медленным.
Мои фактические таблицы:
Datapoint:[DatastreamID:int, Timestamp:datetime, Value:float]
Datastream: [ID:int{unique index}, Uint:nvarchar, Tag:nvarchar]
Если я запрашиваю точки данных определенного потока данных и диапазона дат, это занимает много лет. Особенно, если я запускаю его на встроенном устройстве WindowsCE. И это главная проблема. На моей машине для разработки запрос занял ~ 1сек, а на устройстве CE - ~ 5мин
каждые 5 минут. Я регистрирую 20 датчиков, 12 в час * 24 часа * 365 дней = 105 120 * 20 датчиков = 2 102 400 (строк) в год
Но это может быть еще больше датчиков!
Я думал о каком-то бэкенде веб-сервиса, но устройство не всегда может иметь соединение с интернетом / сервером.
Данные должны отображаться на самом устройстве.
Как я могу ускорить вещи? выбрать другой макет таблицы, использовать другую базу данных (sqlite)? На данный момент я использую .netcf20 и SQLCE3.5
Несколько советов?