(java || kotlin) && devOps
Рекомендую отличную статья по оптимизации скорости вставки в БД на примере PostgreSQL https://habr.com/ru/companies/axiomjdk/articles/1010606 .
Виден последовательный, основательный подход.
Я думаю многие откроют для себя что-то новое. Например, unnest.
У меня вообще с ним интересно вышло - примерно с разницей в один день мне AI-шка этот вариант подсказала, а на следующий на статью наткнулся)
Что бы хотелось добавить по своему опыту - есть еще один, достаточно радикальный способ ускорения вставки данных.
Отказаться от их хранения у себя)
Я не шучу.
Примеры:
- считать и сохранять только нужные агрегаты
- вытаскивать только необходимое.
Потенциальный выигрыш может даже превысить тот, что предлагается в статье.
Еще что интересно - на своей инсталляции PostgreSQL, без оптимизаций, и сильно слабее описанной в статье конфигурации, я получил примерно те же 15000 записей в секунду на один поток.
И тема оптимального числа потоков и ее связь с числом ядер и типом диска требует отдельного исследования. RAM как мне видится, особо влиять на запись не должна.
#db #postgresql
48 ·