rickylin 发表于 2012-5-29 12:17:23

这两种统计的用法哪个更合理些?

CI的 $this->db->count_all_results('article');有时会不适用在一些复杂的查询上,那么在用$this->db->query();计算时下面的两种语法哪种较合理些,效率更高些?
1、
$row = $this->db->query("SELECT COUNT(*) AS numrows FROM article")->row_array();
echo $row['numrows'];
2、
$numrows = $this->db->query("SELECT * FROM article")->num_rows();
echo $numrows;

看起来似乎是第一种比较合适,但看了论坛上的几个作品又有不少是使用第二种来计算的,谁能解释下这二者的区别?

iserich 发表于 2012-5-29 14:34:43

还有用AR的方式啊。。。

第一种返回一数组,占用内存相对大一点。第二种方法返回一个int值。
第二种还有清爽的sql语句。更符合面向对象的思想

rickylin 发表于 2012-5-29 21:40:16

谢谢,
只是从sql上看,第二种是查询整张表,而第一种只是统计行数,不应该是更高效吗?

守望幸福的孩子 发表于 2012-8-10 17:14:06

楼主可以自己写个测试脚本,测试一下两端代码的执行时间。不就知道了。。。。

lihuan34 发表于 2012-8-10 18:13:30

菜鸟关注一下,刚好有百万数据需要用到

netaxcess 发表于 2012-8-10 20:36:39

第一个效率高。是最快的查询
页: [1]
查看完整版本: 这两种统计的用法哪个更合理些?