Обычно индексы жертвуют скоростью вставки ради скорости доступа. Вы можете узнать это из таблицы базы данных (и я видел это в дикой природе), которая индексирует каждый столбец. В этом нет ничего плохого, если количество обновлений мало по сравнению с количеством запросов.
Однако, учитывая, что:
1 / Вы, похоже, обеспокоены тем, что ваша запись замедляется до 5 / мс (это все еще 5000 / сек),
2 / Вы пишете только несколько целых чисел на запись; и
3 / Ваши запросы основаны только на запросах времени,
вы можете захотеть обойти обычную базу данных и развернуть свою собственную базу данных (я думаю, что вы собираете данные в режиме реального времени, такие как показания устройства).
Если вы когда-либо пишете только последовательно синхронизированные данные, вы можете просто использовать плоский файл и периодически записывать информацию «индекса» отдельно (скажем, в начале каждой минуты).
Это значительно ускорит ваши записи, но все же позволит относительно эффективный процесс чтения - в худшем случае вам придется найти начало соответствующего периода и выполнить сканирование оттуда.
Это, конечно, зависит от моего предположения о правильности вашего хранилища:
1 / Вы пишете записи последовательно по времени.
2 / Вам нужно запрашивать только по временным диапазонам.