( свыше 5млрд строк или же свыше 100Гб ), нужно это всё проиндексировать.
Индексация идёт очень долго, потому что компьютер довольно слабый ( 4 ядра ксеон по 3ГГц, 4 Гб ддр2, своп 40Гб, ОС: винда 7 х64): индексировало 2 дня, в итоге понадобилось комп переставить и я закрыл транзакцию.
Вопрос вот в чём, я как понял, можно поиграть с настройками сервера ( work_mem, fsync = off и т.п.)
Что именно можете подсказать по этому поводу?
ЗЫ за безопасность данных можно не переживать, бэкап данных есть на другой машине, а на сервере электричество не пропадёт. Т.е. хотелось бы снизить давление на оперативную память и заставить постгрес писать сразу на диск изменения
по сути вопроса, непонятно, как эту задачу решить с 4ГБ оперативы. Диски ssd ?
Места-то хватает под всё это? Вообще, обычный (B-Tree) индекс создаётся довольно-таки последовательно. Он жрёт память в пределах буферов, выделенных в конфиге. Можно их зажать, подождать недельку и вуаля -- будет индекс.
DDR2?! Я правильно понимаю, что данное железо будет использоваться в целях разработки/тестирования? В проде? Такие ресурсы и на винде? Ну-ну. В противном случае начните с формирования набора (среза) данных для разработки/тестирования для уменьшения объёма. И да, ПГ на винде - это к психиатру.
Обсуждают сегодня