`
ansjsun
  • 浏览: 199748 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个超级快得count的办法.巨yindang

 
阅读更多
首先是在一个数据库优化文章中找到的.
当然作者并没有提出这个办法..
在一个偶然的实验中发现的..不知道是否算是原创呵呵
我的数据库好大啊有3千万跳记录


于是我
SELECT count(1) FROM person_relation 



老板等啊等啊..最后等不行了..把我辞了..呜呜

于是我要让mysql给我解释解释...为啥这么 慢呢..于是我在查询语句前面加了个

EXPLAIN SELECT count(1) FROM person_relation 


奇迹出现了...0.0113秒他给了我结果
'SIMPLE', 'd', 'index', '', 'PRIMARY', '16', '', 32831042, 'Using index'


其中 32831042 就是我表的数目..于是..我工资翻番了...但是..好了可以醒了....
分享到:
评论
7 楼 Hooopo 2012-09-14  
ansjsun 写道
yvfish 写道
如果你用的是MYSQL5.0+的话在`information_schema`库的`TABLES`表中可以查到你的数据表的TABLE_ROWS是多少的。也可以直接用命令:
SHOW TABLE STATUS FROM db_xxx

既然mysql有这么好的办法..为什么还要保留count..在无条件count的时候可以自己查表啊..我们现在项目慢就慢在这个地方了很郁闷

MyIsam会存储总行数,在无条件count很快。
6 楼 ansjsun 2011-10-21  
yvfish 写道
如果你用的是MYSQL5.0+的话在`information_schema`库的`TABLES`表中可以查到你的数据表的TABLE_ROWS是多少的。也可以直接用命令:
SHOW TABLE STATUS FROM db_xxx

既然mysql有这么好的办法..为什么还要保留count..在无条件count的时候可以自己查表啊..我们现在项目慢就慢在这个地方了很郁闷
5 楼 surfire91 2011-09-14  
楼主,你这显然不对啊。
4 楼 yvfish 2011-09-13  
如果你用的是MYSQL5.0+的话在`information_schema`库的`TABLES`表中可以查到你的数据表的TABLE_ROWS是多少的。也可以直接用命令:
SHOW TABLE STATUS FROM db_xxx
3 楼 zizipo 2011-09-12  
这个我也试了select count(id) 和explain 里面的rows并不一样。
查了一下文档,explain里面rows是指mysql执行查询需要检查的行的条数。
我现在也很困惑,出现这种不一致的情况可能的原因。
1.检查的行数与实际的情况不一致(这个想不明白)
2.mysql 执行explain的时候,并没有实际select,只是应用了系统里面一些估计值(innodedb不会记录表实际的行数,但会记录一个表行数的估计值用于优化,这样貌似能解释,而且执行速度这么快)但是感觉mysql不会这么干,使用explain是为优化,它的实现不应该考虑性能,应该尽量得出准确的结果。
  很困惑啊。
2 楼 ansjsun 2011-09-08  
GoTiger 写道
我比较奇怪,这两个SQL语句,我对于同一个表进行了测试,为什么两个得到的结果数目不一致呢?

速度上不一样么?
1 楼 GoTiger 2011-09-08  
我比较奇怪,这两个SQL语句,我对于同一个表进行了测试,为什么两个得到的结果数目不一致呢?

相关推荐

    数字滚动动画插件jquery.countup.min.js

    配合jquery.waypoints.min.js可以实现页面滚动到可视区,数字滚动

    数值动画效果countUp.js.zip

    countUp.js 是一款独立,轻量级的 javascript 类,它能快速的创建各种有趣的数值动画效果。在线演示 标签:countUp

    代码行统计工具CountLines.exe

    代码行统计工具CountLines.exe

    countUp.js

    在jsp界面引用该js, new CountUp("放置数字的元素ID", 起始数字, 结束数字, 0, 2).start(); 例如new CountUp("bcky", 0, result.obj[i].ONLINENUM, 0, 2).start(); 即可实现数字动态跳动

    jquery.countUp

    数字从0滚动到 一定值的效果, 数字从小到大的渐变过程

    count1.asm

    count1.asm

    count60.v

    count60.v

    count18.bdf

    count18.bdf

    count24.v

    count24.v

    prime count2.0.sln

    prime count2.0.sln

    使用Count计算总数.rar

    使用Count计算总数.rar使用Count计算总数.rar使用Count计算总数.rar

    countUp.js:通过对数字进行计数来使数字动画

    CountUp.js CountUp.js是一种无依赖项的轻量级Javascript类,可用于快速创建以更有趣的方式显示数字数据的动画。 尽管它的名字,CountUp可以在两个方向上进行计数,具体取决于您传递的开始和结束值。 CountUp.js支持...

    CountLines.zip

    可以快速统计.h,.cpp,.lua等其他代码的文件行数,当然啦,也可以统计你指定文件的行数, 希望对你有所帮助。

    JD-Count v1.zip

    JD-Count v1.0是一个站内统计的代码,基于php和mysql运行,能够统计到网站的总访问量,今日访问量,ip总数,今日ip总数,当前在线人数等;能够非常方遍嵌入到你网站内,帮助你实现准确的网站统计。也是新手上手学习...

    PHP源码阅读:count函数.docx

    PHP源码阅读:count函数.docx

    CountLines.exe

    代码行数统计工具CountLines C/C++/Java/Xml

    jquery轻量级数字动画插件countUp.js使用详解

    主要为大家详细介绍了jquery鼠标滚动数字增加插件的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    countUp.js实现数字滚动效果

    countup.js是一个无依赖性、轻量级的javascript类,可用于快速创建动画,以更有趣的方式显示数字/数据。详见countup.js 1.3 countup.js使用 npm install countup 进行安装依赖 import CountUp from “cou

    vue-countup-v2:countUp.js的Vue.js组件包装

    vue-countup-v2 CountUp.js的Vue.js组件包装安装$ npm install --save countup.js vue-countup-v2用法< template> < div xss=removed> < ICountUp xss=removed xss=removed xss=removed xss=removed> </ div></ ...

Global site tag (gtag.js) - Google Analytics