在Sqlite3中ALTER TABLE ADD COLUMN的速度?
问题描述:
我有一个广泛使用sqlite3数据库的iOS应用程序。我需要在这些表的很大一部分添加一列。没有一个表是我真正认为很大的(我习惯于处理MySQL表中数百万行),但考虑到iOS设备的硬件限制,我想确保它不会成为问题。最大的桌子将是几十万行。他们中的大多数将是几百到几千或几万。在Sqlite3中ALTER TABLE ADD COLUMN的速度?
我注意到sqlite3只能将列添加到表的末尾。我假设这是为了某种类型的速度优化,尽管可能它只是数据库文件格式的约束。
将行添加到sqlite3表的时间成本是多少?
它只是更新架构而不更改表数据吗?
这个时间是否随表格中的行数或列数增加?
我知道明显的答案是“只是测试”,我会尽快这样做,但搜索,所以我想通了几分钟后,我找不到在计算器上答案我会问,以便其他人可以在将来更容易地找到这些信息。
答
从SQLite的ALTER TABLE documentation:
ALTER TABLE命令的执行时间是独立于表中的 数据量。 ALTER TABLE命令在具有1000万行的表上像在具有1行的表上那样快速地运行 。
该文档意味着操作是O(1)。它应该运行在微不足道的时间。
谢谢,我应该只是RTFM! – 2012-08-31 19:56:03