分析 MySQL 数据库查询的执行时间?
我正在使用 MySQL 数据库,以 phpMyAdmin 作为前端(我不确定我是否具有远程/客户端访问权限)。 我有一个查询数据库的脚本,想查看每个查询需要多长时间? 做到这一点最简单的方法是什么? 我可以在服务器上安装另一个 PHP 应用程序吗?
I am using a MySQL database with phpMyAdmin as the frontend (I am not sure I have remote/client access yet). I have a script that queries the database and would like to see how long each query takes? What is the easiest way to do this? Could I install another PHP app on the server?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您有权访问
MySQL
配置文件,则可以启用常规查询日志
和慢速查询日志
。请参阅此处了解细节。
正如我所想,
5.1.6
,您也可以在运行时执行此操作:,但无论如何都要尝试一下,我不记得它出现时的确切版本。
If you have access to
MySQL
config files, you can enablegeneral query log
andslow query log
.See here for details.
Since, as I think,
5.1.6
, you can also do it in runtime:, but try it anyway, I don't rememeber exact version when it appeared.
对于我处理的大多数应用程序,我都包含可以在开发环境中轻松打开的查询分析输出。 这会输出 SQL、执行时间、堆栈跟踪和显示解释输出的链接。 它还突出显示运行时间超过 1 秒的查询。
尽管您可能不需要那么复杂的东西,但您可以通过在 PHP 中编写一个包装查询执行的函数,并在会话上存储调试信息(或简单地输出它)来获得查询运行时的相当好的感觉。 例如:
这只是一个粗略的想法。 您可以根据需要调整它。
希望有帮助 -
For most applications that I work on, I include query profiling output that can easily be turned on in the development environment. This outputs the SQL, execution time, stack trace and a link to display explain output. It also highlights queries running longer than 1 second.
Although you probably don't need something as sophisticated, you can get a fairly good sense of run time of queries by writing a function in PHP that wraps the query execution, and store debug information on the session (or simply output it). For example:
That's just kind of a rough idea. You can tweak it however you want.
Hope that helps -
您应该将 long_query_time 设置为 1,因为将其设置为 10 将排除大多数(如果不是全部)查询。
在 mysql 提示符中
输入 set @@long_query_time=1;
You should set long_query_time to 1 since setting it to 10 will exclude most if not all of your queries.
In the mysql prompt type
set @@long_query_time=1;