2012-02-06 122 views
1

我有一個廣泛使用sqlite3數據庫的iOS應用程序。我需要在這些表的很大一部分添加一列。沒有一個表是我真正認爲很大的(我習慣於處理MySQL表中數百萬行),但考慮到iOS設備的硬件限制,我想確保它不會成爲問題。最大的桌子將是幾十萬行。他們中的大多數將是幾百到幾千或幾萬。在Sqlite3中ALTER TABLE ADD COLUMN的速度?

我注意到sqlite3只能將列添加到表的末尾。我假設這是爲了某種類型的速度優化,儘管可能它只是數據庫文件格式的約束。

  1. 將行添加到sqlite3表的時間成本是多少?

  2. 它只是更新架構而不更改表數據嗎?

  3. 這個時間是否隨表格中的行數或列數增加?


我知道明顯的答案是「只是測試」,我會盡快這樣做,但搜索,所以我想通了幾分鐘後,我找不到在計算器上答案我會問,以便其他人可以在將來更容易地找到這些信息。

回答

1

從SQLite的ALTER TABLE documentation

ALTER TABLE命令的執行時間是獨立於表中的 數據量。 ALTER TABLE命令在具有1000萬行的表上像在具有1行的表上那樣快速地運行 。

該文檔意味着操作是O(1)。它應該運行在微不足道的時間。

+0

謝謝,我應該只是RTFM! – 2012-08-31 19:56:03