邹健,即各大版主请进!!

顺子 2006-05-29 04:20:59
我在本机测试一个select count(id) from product
800万条记录
就算我是用存储过程也要3分钟
我的电脑配置是cpu c2.4D 512M内存
有那位兄弟有好的方法在不改变我的电脑配置的前提下,提高我查询速度
谢谢
分不够,我再加
QQ:9097954
MSN:shunzi120@hotmail.com
欢迎直接联系我,谢谢
...全文
275 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
云中客 2006-05-30
  • 打赏
  • 举报
回复
给列id创建索引,这样会快些
另外select count(id) from product与select count(*) from product执行效率是不一样的

好像没有更好的办法来获得记录总数?
顺子 2006-05-30
  • 打赏
  • 举报
回复
有什么办法用别其他的方法求到记录总数!!
wangdehao 2006-05-29
  • 打赏
  • 举报
回复
count(1)跟count(*) 的查询计划是一样的

zjcxc 2006-05-29
  • 打赏
  • 举报
回复
count(1) 为什么比 count(*) 高?
zhqs1000 2006-05-29
  • 打赏
  • 举报
回复
我也觉的select count(1) from product
itblog 2006-05-29
  • 打赏
  • 举报
回复
select count(1) from product
应该比前两个更高吧~
zjcxc 2006-05-29
  • 打赏
  • 举报
回复
注:
count(*) 与 count(id) 的结果并不一定相同

前者是表的记录数, 后者是id值不为null的记录数

从这个也可以看出,如果统计表的记录数用 count(列名) 的话, 结果不一定正确,由于要处理NULL值,效率也相对会低一些。
zjcxc 2006-05-29
  • 打赏
  • 举报
回复
这个问题记得有人问过了

给id建立索引, 这样只查id的索引就出记录数啦


如果纯粹求表的记录数, 用:
SELECT COUNT(*)
这样比 count(id) 效率高


如果只求速度(这种方法有时取得的结果并不正确):
sp_spaceused '表名'
wangdehao 2006-05-29
  • 打赏
  • 举报
回复
如果没有查询条件的话,索引的作用也是寥寥。
itblog 2006-05-29
  • 打赏
  • 举报
回复
给ID建索引~
顺子 2006-05-29
  • 打赏
  • 举报
回复
不好意思,我的级别不够,只能给100分,
如果能解决的话,可以再加分

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧