【发布时间】:2010-09-06 10:09:09
【问题描述】:
“Microsoft SQL Server Profiler 是 SQL Trace 的图形用户界面,用于监视数据库引擎或分析服务的实例。”
我发现在开发、测试和调试数据库应用程序问题时使用 SQL Server Profiler 非常有用。有人知道MySql是否有等效的程序吗?
【问题讨论】:
标签: mysql sql-server database
“Microsoft SQL Server Profiler 是 SQL Trace 的图形用户界面,用于监视数据库引擎或分析服务的实例。”
我发现在开发、测试和调试数据库应用程序问题时使用 SQL Server Profiler 非常有用。有人知道MySql是否有等效的程序吗?
【问题讨论】:
标签: mysql sql-server database
社区服务器版本 5.0.37 中很酷的东西是MySQL's new profiler。
这可能会为您提供您正在寻找的信息。
【讨论】:
您是要监控性能,还是只想查看正在执行的查询?如果是后者,您可以配置 MySQL 以记录它给出的所有查询。在 RedHat Linux 机器上,您可以添加
log = /var/lib/mysql/query.log
在重新启动 MySQL 之前转到 /etc/my.cnf 的 [mysqld] 部分。
请记住,在繁忙的数据库场景中,这些日志可能会变得非常大。
【讨论】:
试试 JET profiler 是一个实时查询性能和诊断工具! 我在工作中使用它。优秀的软件和支持。 Review Jet Profiler for MySQL
【讨论】:
使用Neor Profiler SQL,非常棒!并且该应用程序对所有用户都是免费的。 https://www.profilesql.com/download/
【讨论】:
Neor Profiler SQL 4.1.1 macOS Mojave 10.14.6 和 mysql server 5.6.43 和 5.7.27-0ubuntu0.16.04.1
在我看来,我发现这里的一切都是原始的......
找到并打开您的 MySQL 配置文件,通常是 Ubuntu 上的 /etc/mysql/my.cnf。查找“日志记录和复制”部分
# * Logging and Replication
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
log = /var/log/mysql/mysql.log
或者在新版本的mysql中,注释掉这行代码
general_log_file = /var/log/mysql/mysql.log
general_log = 1
log_error = /var/log/mysql/error.log
只需取消注释“log”变量即可打开日志记录。使用以下命令重新启动 MySQL: sudo /etc/init.d/mysql 重启
现在我们已准备好在查询进入时开始监控它们。打开一个新终端并运行此命令以滚动日志文件,并在必要时调整路径。
tail -f /var/log/mysql/mysql.log
【讨论】:
general_log = ongeneral_log_file=/path/to/query.log,而不是我在stackoverflow.com/questions/6479107/…找到的
mysql\bin\my.ini 以防万一其他人正在寻找这个。
Jet Profiler 如果是付费版本就很好。 LogMonitor 只是将它指向 mysql 日志文件。
【讨论】:
不确定图形用户界面,但有一个命令帮助我使用工作台在 MySQL 中对存储过程进行了很多分析:
SET profiling = 1;
call your_procedure;
SHOW PROFILES;
SET profiling = 0;
【讨论】:
如果版本 5.0.37 不可用,您可能需要查看 mytop。它只是输出服务器的当前状态,但允许您在特定查询上运行 EXPLAIN(由 mercutio 提到)。
【讨论】:
我不知道任何类似的分析应用程序,但使用 EXPLAIN 语法分析查询是司空见惯的。您可以使用这些来确定要创建的最佳索引,或者您可以尝试更改整体查询并查看它如何改变效率等。
【讨论】: