怎么最快的取表中的行数?

lovinger2000 2006-01-27 11:38:37
是这样的,我在做搜索引擎,大概有100W以上数据,通常搜索都是用匹配,我已经建立了全文索引。像Google和Baidu那样,每次搜索都显示大概的数据总量,我使用了COUNT(*),当然有匹配关键字的WHERE,但是当匹配到的数据很大时,使用COUNT(*)很慢,需要30多秒。您可以去www.sj110.com看一下,搜索关键字“手机”,数据量在35W左右。这是COUNT(*)太慢,会超时的。

当然,在真正查询数据时,我使用了全文索引,CONTAINS(*, '关键字*'),并且写了分页存储过程,查CONTAINS(*, '手机*')一页数据只要1秒不到。

现在反而COUNT(*)成了制约了,它可能回去遍历统计每一行数据,所以很慢。请问有什么更好的方法吗?Baidu和Google等搜索引擎是怎么做的,谢谢,急救!

大家可以去网站看看http://www.sj110.com
...全文
271 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yitangliang 2006-02-04
  • 打赏
  • 举报
回复
exec sp_spaceused 'tablename'
不过这个是个粗略值,不知道SQLDMO能不能得出精确值!
司码君 2006-01-30
  • 打赏
  • 举报
回复
新建一个计数器表记录数据量,在原数据表上增加一个insert触发器,这样在插入的时候更新计数器表中的数据,这样就不用Count了...


仅供参考
Rubi 2006-01-28
  • 打赏
  • 举报
回复
不了解,帮你up
lianhaifang 2006-01-27
  • 打赏
  • 举报
回复
看了 顶一下

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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