Tải bản đầy đủ (.pdf) (2 trang)

VACUUM trong SQLite | 54 bài học SQLite miễn phí hay nhất PDF vacuum trong sqlite

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (115.94 KB, 2 trang )


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Copyright
 ©
 vietjack.com
 



 

VACUUM trong SQLite
Lệnh VACUUM trong SQLite xóa cơ sở dữ liệu chính (Main Database) bằng việc sao chép
nội dung của nó sang một Database File tạm thời và nạp lại Database File ban đầu từ bản
sao. Việc này loại bỏ các Free Page và căn chỉnh lại dữ liệu bảng để chúng là liền kề nhau,
và xóa cấu trúc của Database File.
Lệnh VACUUM có thể thay đổi ROWID của các entry trong các bảng mà không có một
INTERGER PRIMARY KEY tường minh. Lệnh VACUUM chỉ làm việc trên Main Database.
Bạn không thể thực hiện lệnh VACUUM trên một Attach Database.
Lệnh VACUUM trong SQLite sẽ thất bại nếu có một Active Transaction. Lệnh này cũng có
thể được sử dụng để sửa đổi nhiều tham số cấu hình Database cụ thể.

Manual VACUUM trong SQLite
Sau đây là cú pháp đơn giản để thông báo một lệnh VACUUM cho toàn bộ cơ sở dữ liệu từ
dòng nhắc lệnh:
$sqlite3 database_name "VACUUM;"

Bạn cũng có thể chạy VACUUM từ dòng nhắc sqlite như sau:
sqlite> VACUUM;

Bạn cũng có thể chạy VACUUM trên một bảng cụ thể như sau:
sqlite> VACUUM table_name;

Auto-VACCUM trong SQLite
Auto-VACUUM trong SQLite không thực hiện giống như VACUUM, thay vào đó nó chỉ di
chuyển các Free Page tới phần cuối của cơ sở dữ liệu, do đó giảm kích cỡ của cơ sở dữ
liệu. Bằng việc thực hiện như thế, nó có thể phân mảnh cơ sở dữ liệu trong khi VACUUm
đảm bảo cơ sở dữ liệu là liên tục. Vì thế, Auto-VACUUM chỉ giữ cho cơ sở dữ liệu nhỏ
hơn.

Bạn có thể kích hoạt/vô hiệu hóa auto-vacuum trong SQLite bằng các Pragma sau dòng
nhắc sqlite:


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 Trang
 chia
 sẻ
 các
 bài
 học
 online
 miễn
 phí
 


 



 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Copyright
 ©
 vietjack.com
 


 
sqlite> PRAGMA auto_vacuum = NONE; -- 0 means disable auto vacuum sqlite>
PRAGMA auto_vacuum = INCREMENTAL; -- 1 means enable incremental vacuum sqlite>
PRAGMA auto_vacuum = FULL; -- 2 means enable full auto vacuum

Bạn có thể chạy lệnh sau từ dòng nhắc lệnh để kiểm tra thiết lập auto-vacuum.
$sqlite3 database_name "PRAGMA auto_vacuum;"



 


 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 Trang
 chia
 sẻ
 các
 bài
 học
 online
 miễn
 phí
 


 



×