这是我的查询。根据日志,查询结果大约需要一秒钟。之后的许多循环(偏移17100)需要15 +秒。为什么?在create table中定义id为
`id` INTEGER PRIMARY KEY NOT NULL AUTO_INCREMENT,
这是我的代码/查询
Console.WriteLine("1 {0} {1}", DateTime.Now, offset);
var res = conn.Query<PageInfo2>("select * from tbl order by id limit @o, 300", new { o = offset });
Console.WriteLine("2 {0} {1}", DateTime.Now, offset);
offset += res.Count();
foreach (var v in res)
答案 0 :(得分:4)
当你没有WHERE条件时,引擎最有可能进行全表扫描,这解释了更长的延迟和更高的偏移。
当你没有where条件时,基本上你就像高度分散的文本文件那样阅读表格。
答案 1 :(得分:2)
您还可以尝试使用EXPLAIN命令查看每个SELECT扫描的行数。与前一个答案一样,WHERE可以帮助您仅选择高于初始限制参数的id。