Lessico IT › Database › work_mem

work_mem

Database Svenska → Aggiornato: 2026-10-02

Quanta memoria può usare un singolo ordinamento o una singola tabella hash prima di riversarsi su disco. L'impostazione più fraintesa di PostgreSQL.

L'equivoco è credere che il limite valga per query o per connessione. Vale invece per operazione: una query con tre ordinamenti e due hash join può usare cinque volte il valore, e con i worker paralleli il totale si moltiplica ancora. Il valore predefinito di 4 MB fa sì che gli ordinamenti più grandi ripieghino su un algoritmo di merge esterno su disco, che in EXPLAIN ANALYZE compare come external merge Disk e può essere più lento di ordini di grandezza. La tentazione è alzarlo di molto a livello globale, il che, combinato con un centinaio di connessioni concorrenti, è un modo ben noto per farsi uccidere dall'OOM killer del kernel. Meglio tenerlo basso a livello globale e alzarlo per sessione per le query che ne hanno bisogno.

← Torna al lessico