【发布时间】:2017-05-21 23:06:07
【问题描述】:
我正在尝试将一个表与其自身交叉连接。
select u1.userid,u2.userid from users as u1 join users as u2
当我像行查询一样编写此查询时,它会在0.183 sec 中执行。
但是,当我将相同的查询放入我想用于进一步处理的例程中时,会花费太多时间(approx 500-600 seconds)。
CREATE DEFINER=root`@`localhost PROCEDURE Test_Cross_Join()
BEGIN
select u1.userid,u2.userid from users as u1 join users as u2;
END
事实上,它实际上只执行一次,从中我能够得到大致的持续时间。但是在大多数情况下,当我尝试调用该程序时,我的"MySQL Workbench" 没有响应并强行关闭。用户表包含16000 rows。当我搜索在线查询的执行时间和执行时间时,我没有得到任何满意的答案,因为大多数答案都是说应该没有时间差。我想知道为什么在没有任何单一代码更改的情况下执行相同查询的时间差异如此之大。我在 ubuntu 16.04 上使用 mysql 版本 5.7.16。
【问题讨论】:
标签: mysql sql stored-procedures mysql-workbench