MySQL эффективность жесткого диска с миллионами строк - PullRequest
1 голос
/ 13 марта 2012

У меня есть программа, которая получает около 20 произвольных измерений в секунду от какого-то источника. Каждое измерение имеет тип, отметку времени, минимальное, среднее и максимальное значение. Затем мне нужно создать до X агрегатов каждого типа измерения.

Программа может быть настроена с сотнями источников одновременно, что приводит к большому количеству данных, которые мне нужно быстро хранить и быстро извлекать.

Система, на которой она будет работать, не имеет ограничений памяти / хранилища / процессора, но есть другая служба, которая записывает на жесткий диск почти на пределе своих возможностей. Для этого вопроса, давайте предположим, что это жесткий диск "top of the line", и я не смогу перейти на жесткий диск.

То, что я сейчас делаю, - это создание таблицы для каждого типа измерения (20-кратный источник) с разбивкой по значению временной метки каждого измерения при обнаружении новых типов измерений. Я делаю это так, чтобы не разбивать данные измерений по жесткому диску, что позволит мне вставлять или запрашивать данные с минимальным количеством запросов.

Имеет ли это смысл? Мне не нужно выполнять какие-либо объединения или сложные запросы, все это либо прямые пакетные вставки, либо запрос одного типа измерения по диапазону временных отметок.

Как MySql хранит данные в таблицах на жестком диске? Как лучше спроектировать БД, чтобы минимизировать поиск жесткого диска во время вставки и запроса?

1 Ответ

0 голосов
/ 13 марта 2012

Вы задаете общие вопросы, которые можно найти, прочитав документацию или просмотрев статьи в базе знаний с помощью Google или любой другой поисковой системы, которую вы предпочитаете. Если вы используете механизм MyISAM, который используется по умолчанию, тогда каждая таблица хранится в виде трех файлов в каталоге, специфичном для БД, причем большими являются файл MYD для данных строки и файл MYI для всех индексов.

Самое важное, что вы можете сделать, - это правильно настроить параметры конфигурации, чтобы оптимизировать доступ и кэширование. MySQL сделает лучшую работу, чем вы реально можете ожидать. См. http://dev.mysql.com/doc/refman/5.1/en/option-files.html для получения дополнительной информации и сравните настройки для my-small.cnf и my-large.cnf, которые вы найдете в своей системе, как обсуждается в этом разделе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...