gpt4 book ai didi

c# - SQLiteDataReader,最后一次Read()需10秒

转载 作者:行者123 更新时间:2023-12-03 19:49:07 24 4
gpt4 key购买 nike

我有一个大约有2000万行和3列的数据库,目前没有索引就进行了测试。我的选择语句是这样的:

SELECT * 
FROM database
WHERE column COLLATE NOCASE IN ('expr1', 'expr2' .... up to 96 expressions)


command.ExecuteReader()立即返回,我可以立即读取该集合。但是最后一个不返回任何行的 Read()需要13秒,为什么呢..?如何改善呢?

using (SQLiteDataReader reader = command.ExecuteReader())
{
if(reader.HasRows)
{
while (reader.Read())
{
// READING DB DATA
}
}
}


编辑:将HasRows移出循环

最佳答案

SQLite即时计算结果记录。

在最后一条实际匹配的记录之后,数据库仍必须检查所有其余记录是否匹配。

索引将使查找速度更快。
(使用EXPLAIN QUERY PLAN检查是否使用了某些索引。)

关于c# - SQLiteDataReader,最后一次Read()需10秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18842400/

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