在SQLite中数据库迁移期间内存使用和/或数据库大小是否会翻倍?

时间:2017-08-29 09:55:06

标签: database sqlite migration database-migration

SQLite suggests创建&填充新表并删除旧表作为ALTER TABLE语句是非常有限的。

我的问题是,在SQLite数据库迁移期间内存和/或数据库大小是否会翻倍,因为在迁移期间的某个时刻,将有两个不同的表包含完全相同的数据,甚至可能更多一些。

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

谢谢!

1 个答案:

答案 0 :(得分:1)

当您填写新表但尚未删除旧表时,数据库中有两组数据,因此需要两个磁盘空间。

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