Senior
PostgreSQL-ში VACUUM რა აკეთებს და რატომ ჩნდება მკვდარი ხაზები?
sobes.tech AI
პასუხი AI-სგან
PostgreSQL-ში, როდესაც თქვენ განაახლებთ ან წაშლით სვეტებს, ძველი ვერსიები არ იწმინდება დაუყოვნებლივ, არამედ ხდება "მკვდარი ტუპლები" (dead tuples). ეს დაკავშირებულია MVCC-სთან (Multi-Version Concurrency Control), რომელიც უზრუნველყოფს ტრანზაქციების იზოლაციას. მკვდარი სვეტები იკავებენ ადგილს და შეიძლება ნელა გახადონ მონაცემთა ბაზის მუშაობა.
VACUUM ბრძანება წმენდს ამ მკვდარ სვეტებს, გამოყოფს ადგილს და აცილებს სვეტებისა და ინდექსების ზრდას. არსებობს ჩვეულებრივი VACUUM, რომელიც უბრალოდ აღნიშნავს სივრცეს როგორც თავისუფალს, და VACUUM FULL, რომელიც დამატებით ზეწოლით ამცირებს სქემას და ამცირებს მისი ფიზიკურ ზომას.
მაგალითი:
VACUUM ჩემი_ცხრილი;
ამ გზით, VACUUM ინარჩუნებს შესრულებას და აცილებს დისკის ზედმეტ გამოყენებას.