Sobes.tech
Senior

Ինչ է անում VACUUM-ը PostgreSQL-ում և ինչու են հայտնվում մահացած տողեր?

sobes.tech AI

Պատասխան AI-ից

PostgreSQL- ում, երբ դուք թարմացնում եք կամ հեռացնում եք տողեր, հին տարբերակները չեն հեռացվում անմիջապես, այլ դառնում են "մահացած տողեր" (dead tuples): Սա կապված է MVCC-ի (Multi-Version Concurrency Control) հետ, որը ապահովում է գործարքների մեկուսացումը: Մահացած տողերը զբաղեցնում են տեղ և կարող են դանդաղեցնել տվյալների բազայի աշխատանքը:

VACUUM հրամանը մաքրում է այս մահացած տողերը, ազատում տեղը և կանխում աղյուսակների և ինդեքսների աճը: Կան սովորական VACUUM-ը, որը պարզապես նշում է տարածքը որպես ազատ, և VACUUM FULL-ը, որը լրացուցիչ սեղմում է աղյուսակը, նվազեցնելով նրա ֆիզիկական չափը:

Օրինակ՝

VACUUM իմ_սեղան;

Այսպիսով, VACUUM-ը պահպանում է կատարողականությունը և կանխում է սկավառակի տարածքի գերօգտագործումը։