用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2760|回复: 5
收起左侧

[讨论/交流] 这两种统计的用法哪个更合理些?

[复制链接]
发表于 2012-5-29 12:17:23 | 显示全部楼层 |阅读模式
CI的 $this->db->count_all_results('article');有时会不适用在一些复杂的查询上,那么在用$this->db->query();计算时下面的两种语法哪种较合理些,效率更高些?
1、
PHP复制代码
$row = $this->db->query("SELECT COUNT(*) AS numrows FROM article")->row_array();
echo $row['numrows'];
复制代码

2、
PHP复制代码
$numrows = $this->db->query("SELECT * FROM article")->num_rows();
echo $numrows;
复制代码


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

发表于 2012-5-29 14:34:43 | 显示全部楼层
还有用AR的方式啊。。。

第一种返回一数组,占用内存相对大一点。第二种方法返回一个int值。
第二种还有清爽的sql语句。更符合面向对象的思想
 楼主| 发表于 2012-5-29 21:40:16 | 显示全部楼层
谢谢,
只是从sql上看,第二种是查询整张表,而第一种只是统计行数,不应该是更高效吗?
发表于 2012-8-10 17:14:06 | 显示全部楼层
楼主可以自己写个测试脚本,测试一下两端代码的执行时间。不就知道了。。。。
发表于 2012-8-10 18:13:30 | 显示全部楼层
菜鸟关注一下,刚好有百万数据需要用到
发表于 2012-8-10 20:36:39 | 显示全部楼层
第一个效率高。是最快的查询

本版积分规则