此SELECT查询需要180秒才能完成

此SELECT查询需要180秒才能完成,第1张

此SELECT查询需要180秒才能完成

(发布我的评论作为答案,显然确实有所作为!)

如果将更改为,

IN
=
什么区别?

如果有人想进一步调查,我刚刚进行了测试,发现它很容易复制。

建立表格

CREATE TABLE `filler` (  `id` int(11) NOT NULL AUTO_INCREMENT,  PRIMARY KEY (`id`))

建立程序

CREATE PROCEDURE `prc_filler`(cnt INT)BEGIN        DECLARE _cnt INT;        SET _cnt = 1;        WHILE _cnt <= cnt DO     INSERT     INTO    filler     SELECt  _cnt;     SET _cnt = _cnt + 1;        END WHILE;END

填充表

  call prc_filler(5000)

查询1

SELECT id FROM filler WHERe id =  (SELECt MAX(id) FROM filler  WHERe id =    ( SELECt MIN(id)     FROM filler    WHERe id between 2000 and 3000    )  )

等于说明输出http://img689.imageshack.us/img689/5592/equals.png

查询2(相同的问题)

SELECt id FROM filler WHERe id in  (SELECt MAX(id) FROM filler  WHERe id in    ( SELECt MIN(id)     FROM filler    WHERe id between 2000 and 3000    )  )

在说明输出中http://img291.imageshack.us/img291/8129/52037513.png



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5018342.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-15
下一篇2022-11-15

发表评论

登录后才能评论

评论列表(0条)

    保存