SQLite VACUUM命令整理数据库不改变表ROWID值

文章作者:中山市飞娥软件工作室「Feiesoft.com」  浏览次数:4303 次  更新日期:2013-10-19

VACUUM命令用于整理数据库

SQLite语法格式:VACUUM;

 PHP:sqlite_exec($db,'VACUUM');

数据库实时的插入和删除会使得数据库文件结构混乱,数据库访问速度减慢。当数据库中的表,索引或触发器被撤销,会留下空白磁盘空间。使数据库比需要的大小更大,但能加快INSERT插入速度。

VACUUM命令工作原理:复制当前数据库文件到临时数据库并从临时数据库重新载入主数据库,以整理数据库文件。这将除去空白页,使表数据彼此相邻排列,并整理数据库文件结构。

VACUUM命令不会改变表中记录的ROWID值,即不对表的ROWID值从1开始重新分配。这点非常重要!

SQLite3.1中,可以通过使用auto-vacuum模式取代VACUUM命令,使用 auto_vacuum pragma开启该模式。