У меня есть таблица MySql, которая состоит из:
- ~ 25 миллионов строк (НАСТОЯЩЕЕ)
- 3 индекса
- Каждый день сканер добавляет ~ 3 миллиона строк
- В настоящее время я не смотрю слишком далеко, но окончательная оценка db может быть ~ CONST * e9 строк
- В настоящее время 9,5 гига
- innodb, и он читаетсяс момента вставки
Данные сами по себе состоят из текста ~ 100 символов + несколько полей с метаданными об этом.Индексами являются уникальный идентификатор, имя автора и идентификатор автора.
До сих пор все шло гладко, но теперь серверу трудно обрабатывать вставки новых данных (~ 10 секунд для каждой вставки, которая добавляет ~ 3 тыс. Строк).Я пытаюсь найти способы преодолеть эту проблему.Вещи, которые я считаю:
- Выполнение указателя при вставке требует усилий.Может быть, не делать этого во время вставки, и только после вставки X, добавляя индексы.
- Разделение данных на разные таблицы.
- Срезание в маленькую базу данных, и каждые X минут / дней, перемещение данных в большую базу данных.
- Перемещение в другую базу данныхдб.Я недостаточно знаком с NoSql, поможет ли мне решить эти проблемы?Это большое усилие, чтобы использовать его?
У каждого варианта есть свои подопции и дилеммы, но я думаю, что я должен сначала сосредоточиться на наличии направления.Какой маршрут мне выбрать и почему?Есть ли какая-то другая дорога, о которой я должен подумать?
Кстати - есть также возможность не сохранять все данные, а только те части, которые я действительно отображаю, но это сделает невозможным некоторые функциональные изменения впроцесс, через который проходят данные перед отображением.