2017-08-29 78 views
1

SQLite suggests创建&填充新表并删除旧表,因为ALTER TABLE语句非常有限。SQLite中的数据库迁移期间,内存使用量和/或数据库大小是否会翻倍?

我的问题是,在SQLite的数据库迁移过程中,内存和/或数据库大小是否会翻倍,就像在迁移过程中的某个时刻一样,会有两个不同的表格包含完全相同的数据,甚至更多。

是否需要确保我有足够的内存和/或磁盘空间才能成功完成操作,或者SQLite是否会优化事务并减少所需的资源?有没有办法估计这种迁移操作需要多少资源?

谢谢!

回答

1

当您填充新表并且尚未删除旧表时,您的数据库中都有两组数据,因此两者都需要磁盘空间。

此外,当您删除旧表时,所有已更改数据的旧版本将写入回滚日志以允许事务回滚,因此所需的磁盘空间实际上会增加三倍。 “

+0

”此外,当您删除旧表时,所有已更改数据的旧版本将写入回滚日志以允许事务回滚,因此所需的磁盘空间实际上会增加三倍。“ 我从来没有想到,谢谢! – boramalper