设为首页 加入收藏

TOP

sql 如何从百万条记录中删除某会员发布的N条记录-sql检索效率问题
2011-06-12 21:36:28 来源: 作者: 【 】 浏览:79次 评论:0

sql 如何从百万条记录中删除某会员发布的N条记录-sql检索效率问题 

delete from table200 where mid=xxxxxxx 超时

如果用 select * from table200 where mid=xxxxxxx 也是超时

但如果用 select top 100 * from table200 where mid=xxxxxxx 就很快就检索出来了

//解决方法一

删数据是其他索引都要进行更新

所以手动设置查询超时,可以使用以下语句: 
sp_configure 'show advanced options', 1 
GO 
RECONFIGURE 
GO 
sp_configure 'query wait', 2147483647 
GO 
RECONFIGURE 
GO 

//解决方法二

既然 select top 100 * from table200 where mid=xxxxxxx 很快,那就试试
while 1=1
begin
 set rowcount 100;
 delete from table200 where mid=xxxxxxx;
 if @@rowcount=0 break;
end

//方法三

select top 100 * from table200 where mid=xxxxxxx 0.x~10

//方法四

select * from table200 where mid=xxxxxxx 第一次查询50秒还没执行完 后面再执行 30几秒 10几秒 几秒都有

第一次执行,内存里没有缓存这些数据,需要从硬盘上读取,所以会很慢。
第二次执行,数据已经进入了内存,就不需要从硬盘上读取,直接从内存里读,所以很快
?>

您看到此篇文章时的感受是:
Tags: 责任编辑:administrator
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到QQ空间
分享到: 
上一篇MySQL中文排序错误的解决方法 下一篇mysql数据库备份类

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

相关栏目

最新文章

图片主题

热门文章

推荐文章

相关文章

广告位