【发布时间】:2013-08-04 12:42:01
【问题描述】:
我有一个 SQlite 表,我需要在其中连续插入 6 个项目。并且有 4000 行这样的行。所以需要 4000 * 6 次插入操作。为了减少它,我将这六个项目连接起来并将它们作为一列插入,因此只有 4000 个操作。
但我知道字符串连接操作的复杂性是O(n^2),其中 n 是字符串的编号。当我获取项目时,我需要将字符串分成 6 个部分。相反,任何像插入/查询这样的数据库操作都具有M * O(log(n)) 的复杂性,其中 M 是行数,n 是列,因为它维护B-tree 结构。
那我现在该怎么办?我应该将 6 个项目连接在一起并插入它然后拆分它,还是应该将它们插入 6 列并在 6 次尝试中查询它们?哪个会省时?
【问题讨论】:
-
我不明白你在问什么。您可以使用一个 sql-insert/update-statement 插入/更新一行的 6 个项目(=列)。您是否有想要通过数据库非规范化解决的性能问题?
标签: android sqlite string-concatenation