努力,一定可以成长起来

MySQL中count(*)的用法和效率

         这几天用到mysql数据库,对于count(*)用法知之甚少,无奈要反复用到,所以对于count的用法搜集了不少资料,总结一些比较常用的用法,在此,也特别感谢网络上诸多朋友的分享。

   1. count不重复的记录条数
      SELECT   COUNT(DISTINCT id) FROM  tablename;

   2. 需要返回记录不同的id的具体值
      SELECT    DISTINCT    id    FROM   tablename;
   3. 上面的情况2对于需要返回mysql表中2列以上的结果时会有歧义
      比如  SELECT   DISTINCT  id,type   FROM  tablename;
      实际上返回的是id  与 type 同时不相同的结果,也就是DISTINCT 同时作用了两个字段, 必须得id  与 type 都相同的才被排除了,与我们期望的可能不一样。

   4. 这时候可以考虑使用group_concat 函数来进行排除,不过这个mysql函数是在mysql 4.1以上才支持的
   5. 其实还有另外一种解决方法,就是使用
      SELECT id,type,count(DISTINCT id) FROM  tablename;
      显然这样的返回结果多了一列无用的count数据(或许你就需要这个数据)
      返回的结果是, 只有id不同的所有结果和上面的4类型可以互补使用,看你需要什么数据了
   
      PS:
      SELECT   count(*) FROM  tablename;  即使对于千万级别的数据mysql也能非常迅速的处理
     而对于
      SELECT  count(*)  FROM  tablename  WHERE…       mysqsl的查询时间开始攀升

posted on 2007-12-03 20:05 努力的猪 阅读(2505) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

文章档案

搜索

最新评论

阅读排行榜

评论排行榜