Sobes.tech
Junior — Middle

Kas saaksite selgitada, kuidas töötab VACUUM käsk PostgreSQL-is ja milleks seda kasutatakse?

sobes.tech AI

Vastus AI-lt

PostgreSQL'is VACUUM käsk kasutatakse andmebaasi 'surnud' ridade puhastamiseks, mis jäävad pärast uuendamis- ja kustutamistoiminguid. See aitab vabastada ruumi ja takistada tabelite kasvamist.

VACUUMi peamised ülesanded:

  • Vanemate ridade versioonide (surnud tulpade) eemaldamine, et need ruumi ei hõivaks.
  • Statistiliste andmete uuendamine päringute planeerijale (kui kasutatakse VACUUM ANALYZE).
  • Transaktsiooni ID ülevoolu (wraparound) ennetamine.

Regulaarse VACUUMi teostamata võib andmebaasi jõudlus halveneda ja tabelite suurus suureneda.

SQL näide:

VACUUM;
VACUUM ANALYZE;

Go keeles saab seda käsku täita andmebaasi draiveri kaudu, näiteks:

_, err := db.Exec("VACUUM")
if err != nil {
    log.Fatal(err)
}