获得MySQL结果的时间而不显示结果

时间:2013-11-09 00:39:37

标签: mysql phpmyadmin performance-testing

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

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

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

但缺点是我不得不等待30,000多条记录在屏幕上打印。

有更好的解决方案吗?

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

3 个答案:

答案 0 :(得分:2)

您可以将查询括在SELECT COUNT(1)中以计算返回的行数,而不会打印出所有行:

SELECT COUNT(1)
  FROM (
    <<you query goes here>>
) t;

答案 1 :(得分:1)

我想你真正想要的是获得最佳的查询速度,而不是真正的时间。

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

答案 2 :(得分:0)

您可以使用控制台客户端mysqltime

$ time mysql -u user -h host -ppassword -e "show databases;" > /dev/null
real    0m0.036s
user    0m0.008s
sys     0m0.008s