Witajcie,
Mam nietypowy problem. Jest sobie baza postgresql 9.6 nie jest to duża baza natomiast główna tabela będzie zawierać jakieś 99% miejsca dyskowego i jakieś 75% wszystkich zapytań będzie na tej tabeli.
Problem jest następujący. Takie zapytanie select * from najwieksza_tabela trwa jakieś 20-30 sekund przy obecnej liczbie 22mln rekordów. Sęk w tym, że ten czas jest tylko przy pierwszym uruchomieniu. Po tym pierwszym czasie oczekiwania postgres sobie prawdopodobnie cachuje to zapytanie i kolejne zapytania nawet z dodatkowymi "wariacjami" typu join, where, order, group by działają bardzo szybko max 3-4 sek.
Niestety system nie działa 24h tylko jest "okresowo" włączany - w razie potrzeb. Po każdym restarcie serwera to pierwsze wywołanie trwa dość długo i zastanawiałem się czy dałoby się jakoś zmusić postgresql aby sobie tego cacha z automatu po restarcie przywrócił. Mogę w cronie dodać zadanie gdzie wykonam select'a ale gdzieś mi się obiło o uszy/oczy, że da się jakoś te statystyki zautomatyzować. Macie pomysł?
Chyba szybciej napisałem niż dobrze poszukałem. Załatwię to poprzez https://www.postgresql.org/docs/9.2/monitoring-stats.html ?