【问题标题】:SQLite: Add column or rows first?SQLite:首先添加列或行?
【发布时间】:2014-01-15 04:51:16
【问题描述】:

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

先添加列再添加行,还是先添加行再添加列更快?

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

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

所以我的问题实际上是:

随着列的增加,添加行会变慢吗?

【问题讨论】:

    标签: database-design sqlite


    【解决方案1】:

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

    因此,在添加列之前添加空记录会减少向数据库写入的数据。 (可能差异太小而无法察觉。)

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 谢谢,我知道事务,我的问题是先添加行还是先添加列更快。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      • 2014-09-30
      • 2012-12-21
      • 1970-01-01
      • 2013-11-16
      • 2023-03-14
      相关资源
      最近更新 更多