با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، و کاربرانی که دوره آموزش SQLite را دنبال می کنند. دستور VACUUM در SQLite ، محتویات دیتابیس اصلی را به یک فایل موقت کپی کرده و فایل دیتابیس اصلی را در صورت نیاز بارگزاری می کند، این قابلیت صفحات بدون استفاده و فضای اضافی را حذف کرده و داده های جدول را یکپارچه می کند. برای پاک سازی ساختار فایل دیتابیس نیز بکار می رود. دستور VACUUM در SQLite تنها در دیتابیس اصلی کار می کند و استفاده از VACUUM در یک فایل دیتابیس فرعی امکان پذیر نیست، در صورتیکه یک transaction در دیتابیس فعال باشد، دستور VACUUM اجرا نخواهد شد. برای آشنایی بیشتر با دستور VACUUM در SQLite و طرز کار با آن در ادامه ی این مباحث با ما همراه باشید.
در طی این آمورش شما را با سینتکس انواع دستور VACUUM در SQLite و کاربرد آن آشنا می کنیم.
این سینتکس اجرای یک VACUUM دستی برای کل دیتابیس در خط فرمان است :
1 | $sqlite3 database_name "VACUUM;" |
شما می توانید VACUUM را از طریق فرمان SQLite به صورت زیر اجرا کنید:
1 | sqlite> VACUUM; |
همچنین می توانید VACUUM را در یک جدول خاص به صورت زیر اجرا کنید :
1 | sqlite> VACUUM table_name; |
دستور VACUUM خوکار با هدایت صفحات خالی به انتهای دیتابیس به کاهش حجم آن کمک می کند.
شما می توانید VACUUM خوکار را در دیتابیس با اجرای خط فرمان زیر فعال یا غیر فعال کنید :
1 2 3 | 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 |
برای بررسی تنظیمات VACUUM خوکار از خط فرمان زیر استفاده کنید :
1 | $sqlite3 database_name "PRAGMA auto_vacuum;" |
یک فایل دیتابیس یا جدول پس از ایجاد و درج داده ها در آن ، ممکن است که شامل اطلاعات و فضاهای اضافی که حجم دیتابیس را افزایش می دهد باشد، که برای حذف این موارد اضافی استفاده از دستور VACUUM در SQLite بهترین گزینه است.