200万记录下的select count(*) from table1 where name='xx' 该怎样写? 已经做了索引,但是速度还是慢的很。count100W需要11秒左右!比读去100W数据还慢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1、为字段 name 创建索引;2、将SQL语句改为: select count(name) from table1 where name='xx' 其实count(name) 和count(*)是一样的,有时候甚至比count(*)还要慢呢。 晕哦,你没说清楚是什么数据库啊,你说的是mysql吧,如果是mysql的话,只有在innob的格式下,做索引才有用的,如果把myisam格式的话是没有用的。我一开始以为你说的是sql server呢。 keenx(老刀) ( ) 信誉:95 晕哦,你没说清楚是什么数据库啊,你说的是mysql吧,如果是mysql的话,只有在innob的格式下,做索引才有用的,如果把myisam格式的话是没有用的。-----------------------------------------这是哪来的理论? 感觉在count(*)计算后索引没什么用啊? 其实还得看name是什么类型的数据 不会吧,count(*)是最快的了,200万不算多啊 5zero(秋风) ( ) 信誉:100 2006-07-14 11:02:00 得分: 0 order by 可否做索引?? --------------------------------------------可以 索引只能帮助你快速的找到name=xx的开头。如果你name=xx的记录有100w,那么有索引依然要遍历100w记录,遍历这么多数据再快也是秒级的。对于有大量同名的计数只能在insert、delete时自己维护一个计数器。 select count(1) from table1 where name='xx'再看,这下肯定会快起来的 yibotiemen(易通) ( ) 信誉:100 2006-07-16 19:42:00 得分: 0 select count(1) from table1 where name='xx'再看,这下肯定会快起来的-------------------------果然快得飞起了。我测试了2百万记录。开机第一次花了39秒。然后的都是1,2秒。真快啊真快啊真快啊,真快啊 对一个大表。count只应用于全表的情况。有where时都不应该用count。 除非你确定where出来的结果不会太大。 php传值+号被处理成空格的问题 jpgraph问题 正则表达式php javascript 中是不是都一样 网页每天,每周,每月点击数怎么得出的,就象动网新闻系统那样 sessio问题 急!!图片存入数据库时的问题 列表目录的顺序问题. php软件安装程序怎么制作? 上传目录没有写权限 求教php如何创建一个带键名的空数组,后期再赋值 大家帮忙给我参考一下,谢谢了! 熟悉blog开发的大虾请进!
2、将SQL语句改为: select count(name) from table1 where name='xx'
晕哦,你没说清楚是什么数据库啊,你说的是mysql吧,如果是mysql的话,只有在innob的格式下,做索引才有用的,如果把myisam格式的话是没有用的。
-----------------------------------------这是哪来的理论?
order by 可否做索引??
--------------------------------------------可以
再看,这下肯定会快起来的
select count(1) from table1 where name='xx'
再看,这下肯定会快起来的
-------------------------果然快得飞起了。我测试了2百万记录。开机第一次花了39秒。然后的都是1,2秒。真快啊真快啊真快啊,真快啊