Geheugen tunen (shared_buffers, work_mem)
Optimaliseer het geheugengebruik door `shared_buffers`, `work_mem` en andere geheugeninstellingen correct te configureren.
Geheugen tunen (shared_buffers, work_mem) is een gratis Prestaties en queryoptimalisatie in PostgreSQL-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Prestaties en queryoptimalisatie in PostgreSQL. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Prestaties en queryoptimalisatie in PostgreSQL bevat in totaal 4 lessen.
Geheugen is belangrijk voor PostgreSQL
Het optimaliseren van het geheugengebruik van PostgreSQL is cruciaal voor uitstekende prestaties. Zie geheugen als de tijdelijke werkruimte van je database.
Een juiste geheugenconfiguratie betekent minder wachten op gegevens van trage schijven en een snellere verwerking van query's.
Gedeelde buffers uitgelegd
shared_buffers is een van de belangrijkste geheugeninstellingen. Deze parameter bepaalt hoeveel RAM PostgreSQL gebruikt om gegevenspagina's in de cache op te slaan.
- Wat deze doet: slaat veelgebruikte gegevensblokken uit tabellen en indexen op.
- Waarom deze belangrijk is: vermindert schijf-I/O, omdat PostgreSQL gegevens rechtstreeks vanuit RAM kan leveren.
Gedeelde buffers configureren
Een gebruikelijk startpunt voor shared_buffers is 25% van het totale RAM-geheugen van je systeem. Voor speciale databaseservers kun je tot 40% gaan.
- Te laag? Regelmatig lezen vanaf de schijf.
- Te hoog? Minder RAM voor het besturingssysteem en andere processen, waardoor mogelijk swapping ontstaat.
Vergeet niet PostgreSQL opnieuw te starten nadat je deze instelling in postgresql.conf hebt gewijzigd.
work_mem voor sorteringen en hashes
work_mem is geheugen dat wordt toegewezen aan afzonderlijke querybewerkingen, zoals sorteren (ORDER BY, GROUP BY) en hashtabellen (hash-joins).
In tegenstelling tot shared_buffers is dit geheugen privé voor elke bewerking en tijdelijk. Meerdere bewerkingen in één query, of meerdere gelijktijdige query's, kunnen elk hun eigen work_mem gebruiken.
work_mem verfijnen
Als een querybewerking de toegewezen work_mem overschrijdt, wordt er naar de schijf 'overgelopen' en worden tijdelijke bestanden gebruikt. Dit is veel trager!
Je kunt work_mem globaal instellen, of zelfs per sessie of per query voor specifieke behoeften. Een goed startpunt is 4-16 MB, maar houd overloop in de gaten met EXPLAIN ANALYZE.
Onderhoudsgeheugen (maintenance_work_mem)
maintenance_work_mem is speciaal gereserveerd geheugen voor onderhoudstaken, met name:
VACUUMCREATE INDEXALTER TABLE(kolommen toevoegen enzovoort)
Deze bewerkingen kunnen zeer veel geheugen gebruiken. Het is gebruikelijk om deze waarde hoger in te stellen dan work_mem, bijvoorbeeld op 64-512 MB, om het onderhoud te versnellen.
effective_cache_size: de leidraad van de planner
effective_cache_size is geen geheugen dat door PostgreSQL wordt toegewezen. In plaats daarvan vertelt deze parameter de queryplanner hoeveel geheugen deze verwacht dat beschikbaar is voor het cachen van gegevens.
Dit omvat shared_buffers EN de bestandssysteemcache van het besturingssysteem. Een hogere waarde moedigt de planner aan om indexscans te gebruiken in plaats van sequentiële scans, omdat de gegevens waarschijnlijk in het geheugen staan.
De configuratie wijzigen
De meeste van deze instellingen vind je in je bestand postgresql.conf. Je kunt ze tijdens runtime ook wijzigen met ALTER SYSTEM of met ALTER DATABASE/ALTER ROLE voor meer controle.
Vergeet niet de configuratie opnieuw te laden (of PostgreSQL opnieuw te starten voor shared_buffers) nadat je wijzigingen hebt aangebracht in postgresql.conf.
Gezamenlijke invloed op de prestaties
Wanneer je deze geheugenparameters goed afstemt, werken ze samen om:
- schijf-I/O te verminderen: gegevens die vanuit RAM worden geleverd, zijn veel sneller;
- query's te versnellen: sorteringen, joins en aggregaties worden sneller voltooid;
- onderhoud te optimaliseren: VACUUM en het maken van indexen worden sneller uitgevoerd;
- beslissingen van de planner te verbeteren: betere queryplannen leiden tot een betere uitvoering.
Korte controle: geheugenrollen
Welke PostgreSQL-geheugenparameter wordt voornamelijk gebruikt door afzonderlijke querybewerkingen zoals sorteren en hashen, en kan leiden tot "overlopen naar de schijf" als deze te laag is ingesteld?
Samenvatting: essentieel voor geheugenafstemming
We hebben de belangrijkste PostgreSQL-geheugenparameters verkend:
shared_buffers: hoofdcache voor gegevens, ongeveer 25% van het RAM.work_mem: geheugen per bewerking voor sorteringen en hashes.maintenance_work_mem: voor VACUUM en CREATE INDEX.effective_cache_size: een aanwijzing voor de queryplanner.
Door deze zorgvuldig af te stemmen kun je de prestaties van je database aanzienlijk verbeteren!
Leer SQL met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 22
- Lessen
- 88
Veelgestelde vragen
Is de les “Geheugen tunen (shared_buffers, work_mem)” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Prestaties en queryoptimalisatie in PostgreSQL, waaronder “Geheugen tunen (shared_buffers, work_mem)”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Prestaties en queryoptimalisatie in PostgreSQL bevat in totaal 4 lessen.
Wat leer ik in “Geheugen tunen (shared_buffers, work_mem)”?
Optimaliseer het geheugengebruik door `shared_buffers`, `work_mem` en andere geheugeninstellingen correct te configureren. Je oefent met Prestaties en queryoptimalisatie in PostgreSQL door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Prestaties en queryoptimalisatie in PostgreSQL te beginnen?
Ervaring vooraf is niet nodig. Prestaties en queryoptimalisatie in PostgreSQL op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Geheugen tunen (shared_buffers, work_mem)”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Prestaties en queryoptimalisatie in PostgreSQL?
Ja. Elke les over Prestaties en queryoptimalisatie in PostgreSQL bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Belangrijke parameters van postgresql.conf
- Geheugen tunen (shared_buffers, work_mem)
- Schijf-I/O en checkpoints tunen
- Kostenconstanten van de queryplanner afstemmen