Приветствую,
Я работаю над программным обеспечением, которое регистрирует записи (и связанные с ними теги) в базе данных PostgreSQL для хранения и поиска. Мы никогда не обновляем какие-либо данные после того, как они были вставлены; мы можем удалить его, когда запись станет слишком старой, но это делается не чаще одного раза в день. Сохраненные записи могут быть извлечены пользователями.
Добавление новых записей может происходить довольно быстро и регулярно, поэтому в базе данных обычно содержится несколько миллионов элементов.
Используемые таблицы довольно просты: одна таблица для идентификаторов, необработанного содержимого и даты вставки; и одна таблица, хранящая теги и их значения, связанные с идентификатором. Пользовательский поиск в основном касается значений тегов, поэтому запросы SELECT обычно состоят из запросов JOIN по идентификаторам в двух таблицах.
Подвести итог :
Какой была бы оптимальная конфигурация сервера (программное и аппаратное обеспечение, я предполагаю, например, что RAID10 может помочь) для моего сервера PostgreSQL с учетом этих требований? Под оптимальным я подразумеваю такой, который позволяет запросам SELECT занимать достаточно мало времени.
При необходимости я могу предоставить дополнительную информацию о текущей настройке (например, таблицы, индексы ...).
Измените некоторые параметры конфигурации в postgresql.conf: Writing: увеличьте wal-settings Чтение: увеличьте shared_buffers и установите work_mem на величину, которую планировщик может творить чудом.
Есть несколько настроек, которые нужно проверить и протестировать.
RAID 10 отлично подходит для записи, чтение тоже подойдет. Хорошая RAID-карта с большим объемом оперативной памяти и резервным аккумулятором очень поможет.
И RAM, RAM и RAM. У тебя не может быть слишком много.