2017-08-29 74 views
1

SQLite suggests創建&填充新表並刪除舊錶,因爲ALTER TABLE語句非常有限。SQLite中的數據庫遷移期間,內存使用量和/或數據庫大小是否會翻倍?

我的問題是,在SQLite的數據庫遷移過程中,內存和/或數據庫大小是否會翻倍,就像在遷移過程中的某個時刻一樣,會有兩個不同的表格包含完全相同的數據,甚至更多。

是否需要確保我有足夠的內存和/或磁盤空間才能成功完成操作,或者SQLite是否會優化事務並減少所需的資源?有沒有辦法估計這種遷移操作需要多少資源?

謝謝!

回答

1

當您填充新表並且尚未刪除舊錶時,您的數據庫中都有兩組數據,因此兩者都需要磁盤空間。

此外,當您刪除舊錶時,所有已更改數據的舊版本將寫入回滾日誌以允許事務回滾,因此所需的磁盤空間實際上會增加三倍。 「

+0

」此外,當您刪除舊錶時,所有已更改數據的舊版本將寫入回滾日誌以允許事務回滾,因此所需的磁盤空間實際上會增加三倍。「 我從來沒有想到,謝謝! – boramalper