Я работаю с приложением, которое имеет 3 таблицы, каждая с записями более 10 мм и размером более 2 ГБ.
Каждый раз, когда вставляются данные, в каждую из трех таблиц добавляется как минимум одна запись и, возможно, больше.
После каждой INSERT запускается скрипт, который запрашивает все эти таблицы, чтобы извлечь данные, подходящие для последней INSERT (назовем это агрегационным скриптом).
Каков наилучший способ разделения БД на более мелкие единицы и на разные серверы, чтобы нагрузка для каждого сервера была управляемой?
Примечания:
1. Количество операций вставки превышает 10 в секунду, и, следовательно, сценарий агрегирования выполняется одинаковое количество раз.
2. Сценарий агрегации ресурсоемкий
3. Сценарий агрегирования должен быть запущен для всех данных, чтобы определить, какой из них относится к последней вставке
4. Я не нашел способа как-то разделить БД на более мелкие единицы
5. Я очень мало знаю о распределенных БД, поэтому, пожалуйста, используйте основную терминологию и предоставьте ссылки для дальнейшего чтения, если это возможно