English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يستخدم الأمر VACUUM نسخ محتوى قاعدة البيانات الرئيسية إلى ملف数据库 مؤقت، ثم يقوم بإفراغ قاعدة البيانات الرئيسية، ويعيد تحميل ملف قاعدة البيانات الأصلي من النسخة. هذا يزيل الصفحات الفارغة، ويقوم بترتيب بيانات الجدول بشكل متسلسل، وسيقوم أيضًا بتنظيف بنية ملف قاعدة البيانات.
إذا لم يكن هناك مفتاح رئيسي صريح من نوع INTEGER PRIMARY KEY في الجدول، قد يغير الأمر VACUUM هوية السطر (ROWID) في الجدول. يمكن استخدام الأمر VACUUM فقط في قاعدة البيانات الرئيسية، والملفات المصاحبة لقاعدة البيانات لا يمكن استخدام الأمر VACUUM.
إذا كان هناك معاملة نشطة، سيفشل الأمر VACUUM. الأمر VACUUM هو أي عملية على قاعدة البيانات الذاكرية. بسبب أن الأمر VACUUM يقوم بإنشاء ملف قاعدة البيانات مرة أخرى من البداية، يمكن أيضًا استخدام VACUUM لتعديل العديد من المعلمات المحددة لقاعدة البيانات.
النحو البسيط لإرسال أوامر VACUUM إلى قاعدة البيانات بأكملها من خلال سطر الأوامر:
$sqlite3 database_name "VACUUM;"
يمكنك تشغيل VACUUM من واجهة SQLite، مثل ما يلي-
sqlite> VACUUM;
يمكنك أيضًا تشغيل VACUUM على جدول محدد، مثل ما يلي-
sqlite> VACUUM table_name;
Auto-VACUUM لـ SQLite مختلف عن VACUUM، حيث يقوم فقط بنقل الصفحات الفارغة إلى نهاية قاعدة البيانات، مما يقلل من حجم قاعدة البيانات. بفعل ذلك، يمكنه زيادة تفتت قاعدة البيانات بشكل ملحوظ، بينما VACUUM يقوم بالتفتيت العكسي. لذلك، سيجعل Auto-VACUUM قاعدة البيانات أصغر.
في واجهة SQLite، يمكنك تشغيل الترجمة مع الترجمة، لتمكين/تعطيل Auto-VACUUM لـ SQLite:
sqlite> PRAGMA auto_vacuum = NONE; -- 0 يعني تعطيل الأوتوماتيكية sqlite> PRAGMA auto_vacuum = FULL; -- 1 يعني تمكين الأوتوماتيكية الكاملة للإزالة sqlite> PRAGMA auto_vacuum = INCREMENTAL; -- 2 يعني تشغيل التطهير التدريجي
يمكنك تشغيل الأوامر التالية من خلال واجهة الأوامر لتحقق من إعدادات Vacuum -
$sqlite3 database_name "PRAGMA auto_vacuum;"