返回列表 回复 发帖

【测试】两种统计数据库中记录数的方法

【测试】两种统计数据库中记录数的方法

方法一:
$s mysql_query("SELECT id FROM test");

$sum mysql_num_rows($s);

复制代码
方法二:
$s mysql_query("SELECT COUNT(id) FROM test");

$sum mysql_result($s0);

复制代码
记录总数:30000
耗时统计(保留小数点后4位):
                 方法一            方法二
第一次     0.0383 s        0.0167 s
第二次     0.0325 s        0.0170 s
第三次     0.0360 s        0.0159 s
第四次     0.0352 s        0.0161 s
第五次     0.0339 s        0.0175 s
平均时间 0.0352 s       0.0166 s
测试结果:
方法二速度最少要比方法一快2倍以上(测试记录只用了两个字段,字段数多时性能差别会更明显)
$linvo = new PHPer();
Linvo's blog
新手多实践是对的. 虽然这个例子看上去完全没必要...因为很明显,想都能想出来..

方法一要操作N行数据, 而方法二只操作1行...执行就是这样被拉大了...
PEA福州3群: 38225473
代售易联Linux空间详请PM
原帖由 zwws 于 2008-1-25 23:18 发表
新手多实践是对的. 虽然这个例子看上去完全没必要...因为很明显,想都能想出来..

方法一要操作N行数据, 而方法二只操作1行...执行就是这样被拉大了...
因为手册中的这句话
”当数据库大时,本函数的效率就有待考量了,这时可以使用较有效率的mysql_fetch_row()、mysql_fetch_array() 及 mysql_fetch_object() 等函数。“
以前我总以为mysql_result()的效率比较低,所以一直很困惑,不敢使用。
现在终于明白怎么回事了,呵呵~

[ 本帖最后由 linvo 于 2008-1-25 23:27 编辑 ]
$linvo = new PHPer();
Linvo's blog
返回列表