我的Db看起来像这样:
id | Column1 | Column2
必须知道的事实:id不是主要的唯一ID(但可能是)。 id最高可达2百万+。列值用TINYINT
填充var query : String = "SELECT Column1 FROM Table1 WHERE Column1 <> 0";
dbcmd = dbcon.CreateCommand();
dbcmd.CommandText = query;
reader = dbcmd.ExecuteReader();
var result : int = 0;
while(reader.Read()) {
result++;
}
return result;
但是对于一个基本的搜索它最多需要5秒,反正是为了让它更快?
编辑:像往常一样,感谢贡献者和快速!
答案 0 :(得分:7)
是的,您正在阅读结果并逐一处理。你似乎正在做的就是计数,你可以得到:
"SELECT COUNT(*) FROM Table1 WHERE Column1 <> 0";
答案 1 :(得分:2)
这看起来不像javascript代码,但您可以尝试计算记录而不是执行查询,然后循环遍历客户端上的整个结果集并增加变量:
var query : String = "SELECT Count(Column1) FROM Table1 WHERE Column1 <> 0";
这将比你的代码快得多,因为count操作将由数据库服务器直接完成。
答案 2 :(得分:0)
是,索引Column1上的表,即where子句中使用的行。