SQLite:首先添加一列或多行?

时间:2014-01-13 21:08:36

标签: database-design sqlite

我有一个SQLite表,需要一些列,并添加了大约一百万行。

添加列然后添加行,行,然后添加列会更快吗?

列和行都是空值。稍后我将使用另一个脚本用数据填充它们。

更新:Sqlite文档说:“AlterTable在具有1行的表上运行速度与10M行一样快”(http://www.sqlite.org/lang_altertable.html

所以我的问题实际上是:

使用更多列添加行会减慢吗?

2 个答案:

答案 0 :(得分:1)

当您向表中添加新列时,SQLite不会更改表数据本身。 如果表记录的列少于表定义,则假定缺少的列为NULL。当UPDATE影响该记录时(或当您插入新记录时),表记录将以完整列数写入。

因此,在添加列之前添加空记录会将更少的数据写入数据库。 (这可能是差异太小而不明显。)

然而,最大的性能问题可能是稍后更新记录。 如果可能的话,您应该插入包含最终数据的记录,并避免更新它们。

答案 1 :(得分:0)

启动事务,然后添加行,并提交事务。否则Sqlite会在每次插入后尝试提交到磁盘,导致速度慢得多。