2

我意识到使用 phpMyAdmin 来测试查询速度可能很愚蠢:它会自动应用一个LIMIT子句。

GROUP BY我用一个子句对相当多的记录(31,595)尝试了某个查询。phpMyAdmin 添加LIMIT 0, 2000.1556 秒来获取结果。

我决定在没有子句的情况下从命令行尝试相同的查询LIMIT,它花了 0.20 秒。太好了,所以现在我有了该查询所需的实时时间。

但缺点是我必须等待 30,000 多条记录才能在屏幕上打印。

有更好的解决方案吗?

编辑:为了澄清,我正在寻找一种方法来抑制选择查询的屏幕输出,同时仍然获得运行查询的准确时间。而且我希望它是可以随时输入和计时的东西(即我不想调整slow log设置来捕捉结果)。

4

3 回答 3

5

您可以将查询括起来SELECT COUNT(1)以计算返回的行数,而无需打印出所有行:

SELECT COUNT(1)
  FROM (
    <<you query goes here>>
) t;
于 2013-11-09T00:46:51.767 回答
1

我想您真正想要的是为您的查询获得尽可能快的速度,而不是真正计时。

如果是这种情况,请在 phpMyAdmin 中键入您的查询(添加 LIMIT 子句并不重要),然后单击“解释 SQL”链接以查看您使用的是索引还是全表扫描。

于 2013-11-09T12:10:45.170 回答
0

您可以使用控制台客户端mysql时间

$ time mysql -u user -h host -ppassword -e "show databases;" > /dev/null
real    0m0.036s
user    0m0.008s
sys     0m0.008s
于 2013-11-09T00:48:00.177 回答