在Sqlite3中ALTER TABLE ADD COLUMN的速度?

时间:2012-02-06 20:30:16

标签: ios sqlite

我有一个广泛使用sqlite3数据库的iOS应用程序。我需要在这些表的很大一部分中添加一列。没有一个表是我真正认为的大(我习惯于在MySQL表中处理数百万行),但考虑到iOS设备的硬件限制,我想确保它不会成为问题。最大的表将是几十万行。他们中的大多数将是几百到几千或几万。

我注意到sqlite3只能在表的末尾添加列。我假设这是某种类型的速度优化,尽管它可能仅仅是数据库文件格式的约束。

  1. 向sqlite3表添加行的时间成本是多少?

  2. 它只是更新架构而不是更改表数据吗?

  3. 时间会随着表格中的行数或列数而增加吗?


  4. 我知道对此的明显答案是“只是测试”,我很快就会这样做,但是在搜索几分钟后我无法在StackOverflow上找到答案所以我想我会问其他人可以将来可以更轻松地找到这些信息。

1 个答案:

答案 0 :(得分:1)

来自SQLite ALTER TABLE documentation

  

ALTER TABLE命令的执行时间独立于   表中的数据量。 ALTER TABLE命令运行得很快   在一个有1000万行的表上,就像在一行的表上一样。

文档暗示操作是O(1)。它应该在可以忽略不计的时间内运行。