佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 2599|回复: 7

一个query很多loop和一个heavy query

[复制链接]
发表于 6-12-2010 07:21 PM | 显示全部楼层 |阅读模式
本帖最后由 mylover 于 7-12-2010 03:54 AM 编辑

有个问题想请问for x=1; x<=1000; x++
select * from member where mid=x;

select * from member where mid IN (1,2,3...1000);

哪一个会比较快呢?
table是million row
回复

使用道具 举报


ADVERTISEMENT

发表于 6-12-2010 09:42 PM | 显示全部楼层
SELECT * FROM TABLE WHERE mid BETWEEN 1 AND 1000
回复

使用道具 举报

发表于 7-12-2010 02:18 AM | 显示全部楼层
头一个将100改为1000才好比较吧..
回复

使用道具 举报

 楼主| 发表于 7-12-2010 03:53 AM | 显示全部楼层
ops是1000
打错
回复

使用道具 举报

发表于 7-12-2010 11:08 AM | 显示全部楼层
use EXISTS instead of IN
回复

使用道具 举报

发表于 3-10-2011 05:32 PM | 显示全部楼层
select * from member where mid IN (1,2,3...1000);

如果in clause 太多,会stack overflow exception...
回复

使用道具 举报

Follow Us
发表于 4-10-2011 01:35 PM | 显示全部楼层
如此极品的IN clause,真的是第一次看到。。。
回复

使用道具 举报

发表于 29-10-2011 11:24 AM | 显示全部楼层
为是么要Loop 1000 呢?既然你都是要用 number as key。除非你是一次只需要一row。不然,用 SELECT * FROM TABLE WHERE mid BETWEEN 1 AND 1000;会比较好。
回复

使用道具 举报


ADVERTISEMENT

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT


本周最热论坛帖子本周最热论坛帖子

ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 9-11-2025 11:37 PM , Processed in 0.127978 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表