0

我的数据库看起来像这样:

id | Column1 | Column2

必须知道的事实:id 不是主要的唯一 id(但可能是)。id 最高可达 200 万+。列值用 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 秒,有没有办法让它更快?

编辑:像往常一样,感谢贡献者和速度!

4

3 回答 3

7

是的,您正在阅读您的结果并一一处理它们。您似乎需要做的只是计数,您可以获得:

"SELECT COUNT(*) FROM Table1 WHERE Column1 <> 0"; 
于 2013-03-17T16:47:54.013 回答
2

这看起来不像 javascript 代码,但您可以尝试计算记录而不是执行查询,然后循环遍历客户端上的整个结果集并增加一个变量:

var query : String = "SELECT Count(Column1) FROM Table1 WHERE Column1 <> 0";

这将比您的代码快得多,因为计数操作将由数据库服务器直接完成。

于 2013-03-17T16:47:47.403 回答
0

是的,索引 Column1 上的表,即 where 子句中使用的行。

于 2013-03-17T16:48:10.737 回答