×

VACUUM در SQLite

فصل سی و هشتم :

VACUUM در SQLite

همنطور که از نامش پیداست برای تمیزکاری دیتابیس از آن استفاده میشود. هنگای که ما رکورد هایی را از جداول حذف میکینم بصور پیشفرض مقدار حجمی که از فایل دتابیس ما گرفته اند آزاد نمیشود و دیتابیس ما کوچ نمیود. با اجرا این دستور باعث میشویم page های خالی حذف شده و رکد های جداول ما پیوسته شوند بنابراین در دیتابیس را یک تمیز کاری خوبی انجام دادیم !
$sqlite3 database_name "VACUUM;"
دستور بالا جهت انجام VACUUM برای کل یک دیتابیس کاربرد دارد.
همچنین این دستور میتوان از سطر فرمال SQLite نیز اجرا کرد:
sqlite> VACUUM;
و یا تنها یک جدول را VACUUM کرد
sqlite> VACUUM table_name;

Auto-VACUUM

عملکرد Auto-VACCUM دقیقا همانند VACUUMنیست چرا که با اجرای ان تنها page های خالی را به انتهای فایل دیتابیس منتقل میکند و بنابراین فایل دیتابیس را کوچک میکند. ( اما خود VACUUMیه عملکردی مثل defragment در ویندوز دارد).
همانطور که در فصل pragma توضیح داده شد از دستورات ذیل برا فعالسازی auto-vacuum استفاده میشود.
sqlite> PRAGMA auto_vacuum = NONE; -- 0 means disable auto vacuum
sqlite> PRAGMA auto_vacuum = FULL; -- 1 means enable full auto vacuum
sqlite> PRAGMA auto_vacuum = INCREMENTAL; -- 2 means enable incremental vacuum

همچنین برای انکه ببینیم وضعیت auto-vacuum دتابیس چگونه است از دستورات ذیل استفاده میشود.
$sqlite3 database_name "PRAGMA auto_vacuum;"


مفاهیم و موضوعات این فصل عبارتند از :

  • VACUUM در SQLite

vatantop
نظرات و سوالات درج سوال/ نظر