#mysql #architecture
#mysql #архитектура
Вопрос:
Я получил приложение, которое выполняет только две операции.
- Создает около 300 Тыс. записей журнала о состоянии 10 тыс. аппаратных объектов за 30 минут. т.е. 1 запись / 1 объект / 1 минута
-
Отправляйте соответствующему администратору, если для определенного объекта происходят 4 сбоя, т. Е. Каждые 4 минуты я получаю 4 записи статуса для каждых 10 тыс. объектов и почту, если необходимо.
Теперь у меня есть две таблицы Entity, StatusEntries с ограничением внешнего ключа. Теперь я помещаю фиктивные записи без проверки аппаратных объектов. Все еще мой процессор загружается.
Должен ли я переключиться на MyISAM. Я попробовал репликацию на той же машине, это еще больше ускоряет процессор.
Предложите мне возможное решение этой проблемы.
Спасибо.
Комментарии:
1. У вас есть все правильные индексы? Индексы должны быть на всех полях, которые используются в
WHERE
части любого запроса.
Ответ №1:
300 Тыс. записей в журнале о состоянии 10 тыс. аппаратных объектов за 30 минут
Около 166 вставок в секунду.
каждые 4 минуты я получал 4 записи статуса для каждых 10 Тыс. объектов
Около 41 простого выбора / с
У вас не должно возникнуть никаких проблем с этим, это не очень большая нагрузка.
Можете ли вы предоставить более подробную информацию о структуре таблицы, о том, как вы выполняете свои вставки, ваши выборки?
Индексы определенно не должны создаваться для всего, только соответствующие индексы (те, которые действительно ускоряют ваши запросы)… актуально … и достойны того, чтобы оплачивать стоимость их обновления при каждой вставке!
Комментарии:
1. запрос select становится очень медленным
2. ОК. Я получил поле метки времени и извлек последние 4 записи относительно ТЕКУЩЕГО момента для каждого объекта. Для извлечения требуется не менее 5 секунд.