gpt4 book ai didi

.net - Sqlite 删除速度非常慢 - 如何加快速度?

转载 作者:搜寻专家 更新时间:2023-10-30 20:40:39 31 4
gpt4 key购买 nike

我读到删除操作很慢,我想知道如何改进此检查。

我有一张表,每天有 10-15k 行,每次启动我都需要清理所有超过 6 个月的记录,但是当数据库增长时,我开始遇到速度问题。当我运行此命令时接近 100 万条记录 - 即使我没有任何要删除的 - 软件挂起几分钟......这是 Not Acceptable :

Using cnn as New SqliteConnection(dbConnection)
cnn.Open()
dim cmd as New SQLiteCommand(cnn)
cmd.CommandText = "DELETE FROM tablename WHERE timecolumn < datetime('now', '-6 months')"
rowsUpdated = cmd.ExecuteNonQuery
End Using

即使没有删除任何记录,这也会导致几分钟的挂起。

我怎样才能做得更快、更快?

我正在为 WinCe 6 开发 .NET compact framework 3.5

谢谢

最佳答案

这里有很多东西需要调整 SQLite Optimization .我会尝试通过更改“PRAGMA cache_size”将整个“表名”存入内存。当您删除它时,它必须大幅重新平衡 btree。如果它在执行时可以全部存储在内存中,那么速度会快得多。

我还会在“timecolumn”字段上添加一个索引。没有它,删除将扫描表中的每条记录。它会增加实际删除符合条件的记录时完成的工作,但总体上应该会快很多。

如果可能,移动到支持分区的数据库(如 postgreSQL)并使用“timecolumn”将数据拆分为时间段。这使得数据库将您的表分成许多子表,并真正加快了在“timecolumn”之间搜索的内务处理和查询......

关于.net - Sqlite 删除速度非常慢 - 如何加快速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21707190/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com