在FTS3表中缓慢插入一个特定行

时间:2014-10-20 15:16:32

标签: android database sqlite insert full-text-search

我创建了一个全文搜索表格表:

CREATE VIRTUAL TABLE library_search  
                USING fts3 (
                [...]

该表共有15列,只有文本列。

当我插入表格时会出现问题。 大多数插入都很快完成(不到半秒)。但是,当我的表有大约2100 - 2200行时,有一个插入需要很长时间,大约60秒才能完成。

我观察到以下情况:

  • 插入的行大约是第2100到第2200行时会发生这种情况。
  • 如果插入的数据集相同,则它将始终是同一行。
  • 如果数据集发生变化,则行不同,但总是在2100 - 2200左右。
  • 在我使用(Android 4.2 +)
  • 测试的所有设备中都会发生这种情况
  • 当发生这种情况时,插入的行没有任何特殊之处......它的内容值的大小是标准的。
  • 如果插入是使用立即交易,独占交易或根本不进行交易,则会发生这种情况。
  • 发生这种情况时,数据库大约为15Mb。

我不知道为什么会这样。我唯一可以怀疑的是,当完成特定的插入时,数据库的大小使得db管理器必须执行一些特殊操作,例如在文件系统中分配更多空间或类似的东西... < / p>

我很感激任何想法。 谢谢。

0 个答案:

没有答案