У меня есть программа, которая получает около 20 произвольных измерений в секунду от какого-то источника. Каждое измерение имеет тип, отметку времени, минимальное, среднее и максимальное значение. Затем мне нужно создать до X агрегатов каждого типа измерения.
Программа может быть настроена с сотнями источников одновременно, что приводит к большому количеству данных, которые мне нужно быстро хранить и быстро извлекать.
Система, на которой она будет работать, не имеет ограничений памяти / хранилища / процессора, но есть другая служба, которая записывает на жесткий диск почти на пределе своих возможностей. Для этого вопроса, давайте предположим, что это жесткий диск "top of the line", и я не смогу перейти на жесткий диск.
То, что я сейчас делаю, - это создание таблицы для каждого типа измерения (20-кратный источник) с разбивкой по значению временной метки каждого измерения при обнаружении новых типов измерений. Я делаю это так, чтобы не разбивать данные измерений по жесткому диску, что позволит мне вставлять или запрашивать данные с минимальным количеством запросов.
Имеет ли это смысл? Мне не нужно выполнять какие-либо объединения или сложные запросы, все это либо прямые пакетные вставки, либо запрос одного типа измерения по диапазону временных отметок.
Как MySql хранит данные в таблицах на жестком диске? Как лучше спроектировать БД, чтобы минимизировать поиск жесткого диска во время вставки и запроса?