`
ansjsun
  • 浏览: 203837 次
  • 性别: 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语句,我对于同一个表进行了测试,为什么两个得到的结果数目不一致呢?

相关推荐

    代码行统计工具CountLines.exe

    代码行统计工具CountLines.exe是一款专门用于计算源代码文件中行数的应用程序,它能够帮助开发者、项目管理者以及质量保证人员快速了解一个项目或代码库的规模。在软件开发过程中,代码行数常被用作衡量工作量、...

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

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

    CountLines.zip

    "CountLines.zip"是一个实用工具,专为程序员设计,能够快速统计.h、.cpp以及.lua等不同类型的源代码文件中的行数。不仅如此,它还支持用户自定义需要统计的文件类型,极大地增强了其灵活性和实用性。 这个工具的...

    数值动画效果countUp.js.zip

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

    wordscount2.0.zip

    词频统计,顾名思义,是统计一个词汇在文本中出现的频率。这项工作在新闻分析、学术研究、市场调研等领域都有广泛的应用。通过对词频的统计,我们可以找出文本中的高频词汇,这些词汇往往代表了文本的核心主题。例如...

    CountV1-4(count).zip_CAD 统计_CountV1-4._CountV1-4.lsp_count.lsp_s

    `count.lsp` 另一个LISP程序,可能是为了支持或扩展 `CountV1-4.lsp` 的功能。它可能包含通用的计数函数,或者用于处理特定情况的逻辑,比如处理复杂图形或处理多个图块的计数问题。它也可能负责将统计数据格式化或...

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

    CountUp.js是一个无依赖、轻量级的JavaScript类,专门用于创建数字动画效果,使数据显示更加生动有趣。它能够轻松地实现数字的渐进式增加,适用于各种统计数据的展示场景,例如统计页面浏览量、销售额等。 **安装与...

    countUp.js

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

    veriloghdl.rar_count60.v

    在这个"veriloghdl.rar_count60.v"压缩包中,包含了多个Verilog程序示例,特别是"count60.v"这个文件,我们可以推测它是一个计数器的设计,可能实现了从0到60的计数功能。这对于初学者来说是一个很好的学习资源,...

    count1.asm

    count1.asm

    count60.v

    count60.v

    count18.bdf

    count18.bdf

    count24.v

    count24.v

    基于CountUpjs的vue组件

    在本案例中,我们讨论的是一个基于CountUp.js的Vue组件,它用于实现动态数字动画效果。 **CountUp.js介绍** CountUp.js是一个轻巧的JavaScript库,专门用于创建平滑、动态的计数动画。它能够将任何HTML元素的初始...

    前端项目-jquery-countto.zip

    本项目“前端项目-jquery-countto”是基于jQuery的一个插件,名为jQuery CountTo,它允许开发者轻松地创建动态计数效果,如数字递增或递减,常用于显示统计数据或者实时更新的数值。以下将详细介绍这个插件及其相关...

    prime count2.0.sln

    prime count2.0.sln

    countUp插件使用

    countUp.js是一个高效的JavaScript库,能够轻松地创建动态的计数效果,使得数字从一个值平滑地过渡到另一个值,常用于展示统计数据或实时更新的数据。在Angular框架中集成countUp.js,可以为用户带来更直观、更具...

    countUp.js实现数字滚动效果

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

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

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

    CountUp.js实现数字滚动增值效果

    CountUp.js是一个JavaScript库,用于创建数字滚动增值效果,这种效果常见于统计数据更新或加载时的动画展示,能够给用户带来更生动、动态的视觉体验。本文将深入解析CountUp.js如何实现这一功能,并通过示例代码详细...

Global site tag (gtag.js) - Google Analytics