SQLite - สูญญากาศ
คำสั่ง VACUUM ล้างฐานข้อมูลหลักโดยการคัดลอกเนื้อหาไปยังไฟล์ฐานข้อมูลชั่วคราวและโหลดไฟล์ฐานข้อมูลต้นฉบับจากสำเนา วิธีนี้จะกำจัดเพจว่างจัดแนวข้อมูลตารางให้ติดกันและล้างโครงสร้างไฟล์ฐานข้อมูล
คำสั่ง VACUUM อาจเปลี่ยน ROWID ของรายการในตารางที่ไม่มีคีย์หลัก INTEGER อย่างชัดเจน คำสั่ง VACUUM ใช้ได้กับฐานข้อมูลหลักเท่านั้น เป็นไปไม่ได้ที่จะ VACUUM ไฟล์ฐานข้อมูลที่แนบมา
คำสั่ง VACUUM จะล้มเหลวหากมีธุรกรรมที่ใช้งานอยู่ คำสั่ง VACUUM คือ no-op สำหรับฐานข้อมูลในหน่วยความจำ เนื่องจากคำสั่ง VACUUM สร้างไฟล์ฐานข้อมูลใหม่ตั้งแต่เริ่มต้น VACUUM ยังสามารถใช้เพื่อแก้ไขพารามิเตอร์คอนฟิกูเรชันเฉพาะฐานข้อมูลจำนวนมาก
คู่มือสุญญากาศ
ต่อไปนี้เป็นไวยากรณ์ง่ายๆในการออกคำสั่ง VACUUM สำหรับฐานข้อมูลทั้งหมดจากพรอมต์คำสั่ง -
$sqlite3 database_name "VACUUM;"
คุณสามารถเรียกใช้ VACUUM จาก SQLite prompt ได้ดังต่อไปนี้ -
sqlite> VACUUM;
คุณยังสามารถเรียกใช้ VACUUM บนตารางเฉพาะได้ดังนี้ -
sqlite> VACUUM table_name;
สูญญากาศอัตโนมัติ
SQLite Auto-VACUUM ไม่ทำเช่นเดียวกับ VACUUM แต่เพียงแค่ย้ายเพจว่างไปยังส่วนท้ายของฐานข้อมูลซึ่งจะช่วยลดขนาดฐานข้อมูล การทำเช่นนี้สามารถแยกส่วนฐานข้อมูลได้อย่างมีนัยสำคัญในขณะที่ VACUUM ช่วยให้มั่นใจได้ว่าการจัดเรียงข้อมูล ดังนั้น Auto-VACUUM จึงทำให้ฐานข้อมูลมีขนาดเล็ก
คุณสามารถเปิด / ปิดการใช้งานการดูดฝุ่นอัตโนมัติของ SQLite โดย pragmas ต่อไปนี้ที่รันที่พรอมต์ SQLite
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
คุณสามารถรันคำสั่งต่อไปนี้จากพรอมต์คำสั่งเพื่อตรวจสอบการตั้งค่าสูญญากาศอัตโนมัติ -
$sqlite3 database_name "PRAGMA auto_vacuum;"