An̲*_*rew 26 database terminology vacuum
正如这个Firefox bug所引用的那样,真空吸尘数据库的行为是什么?所有现代数据库软件或仅某些数据库软件是否支持此操作?
小智 5
真空意味着两件事:
为什么使用真空:
当您删除表、视图、索引和触发器等数据库对象或从表中删除数据时,数据库文件的大小总是会增加,因为 SQLite 只是将删除的对象标记为空闲并保留以供将来使用。
索引和表变得碎片化,伴随着大量的插入、更新和删除。
未使用的数据块是由插入、更新和删除操作创建的。
防范措施: 不同的数据库可能会以不同的方式处理此问题:例如,在 SQLite 中,如果您使用非别名 rowid,VACUUM 命令将重置 rowid 值。但如果您使用 INTEGER PRIMARY KEY 列,则 VACUUM 不会更改该列的值。
Vacuum 需要空间来复制数据库并运行操作。