【问题标题】:Is there a Profiler equivalent for MySql? [closed]是否有与 MySql 等效的 Profiler? [关闭]
【发布时间】:2010-09-06 10:09:09
【问题描述】:

“Microsoft SQL Server Profiler 是 SQL Trace 的图形用户界面,用于监视数据库引擎或分析服务的实例。”

我发现在开发、测试和调试数据库应用程序问题时使用 SQL Server Profiler 非常有用。有人知道MySql是否有等效的程序吗?

【问题讨论】:

    标签: mysql sql-server database


    【解决方案1】:

    社区服务器版本 5.0.37 中很酷的东西是MySQL's new profiler

    这可能会为您提供您正在寻找的信息。

    【讨论】:

    • 仅供参考,上面的链接似乎已经死了,它把我带到了一个空白的 Orace 搜索页面。这是 SHOW PROFILES 语法的链接,它将帮助您做您想做的事情:dev.mysql.com/doc/refman/5.0/en/show-profiles.html.
    • 仅供参考:使用来自 waybackmachine 的快照更新了原始链接
    • 请注意,这个答案是关于 SQL Profiler 的,它主要是一个分析工具,用于了解如何执行单个 SQL 查询。这很好,但大多数 Microsoft SQL Profiler 用户都在寻找跟踪工具,即显示已执行 SQL 的工具。
    【解决方案2】:

    您是要监控性能,还是只想查看正在执行的查询?如果是后者,您可以配置 MySQL 以记录它给出的所有查询。在 RedHat Linux 机器上,您可以添加

    log = /var/lib/mysql/query.log

    在重新启动 MySQL 之前转到 /etc/my.cnf 的 [mysqld] 部分。

    请记住,在繁忙的数据库场景中,这些日志可能会变得非常大。

    【讨论】:

      【解决方案3】:

      试试 JET profiler 是一个实时查询性能和诊断工具! 我在工作中使用它。优秀的软件和支持。 Review Jet Profiler for MySQL

      【讨论】:

      • 旧产品。被我使用并救了我的命,但不是今天。
      • 此答案已过时,因为引用的网站不再与 MySQL 相关
      • 不要点击链接,这个网站不再是关于 MySQL 的了。 (这是一个有中文内容的中文网站)
      【解决方案4】:

      使用Neor Profiler SQL,非常棒!并且该应用程序对所有用户都是免费的。 https://www.profilesql.com/download/

      【讨论】:

      • 我正在尝试在我的 ubuntu 上使用它,但它甚至没有连接到 mysql。
      • 虽然好久没更新了,但好像是个不错的应用,但是不明白怎么可视化执行的查询。顶部图表似乎没问题,但查询列表仍然为空。 Neor Profiler SQL 4.1.1 macOS Mojave 10.14.6mysql server 5.6.435.7.27-0ubuntu0.16.04.1
      • 用MySql 8 需要使用带有旧本机密码认证的用户。
      • 请更新这篇文章的链接,提供的链接指向一个中文网站。 MySQL WorkBench 8 值得一试,它有很多很好的功能可以通过易于使用的 GUI 进行报告和导出来分析您的 MySQL 实例。
      【解决方案5】:

      在我看来,我发现这里的一切都是原始的......

      找到并打开您的 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/…找到的
      • Windows 上的配置文件位置(xampp 安装):mysql\bin\my.ini 以防万一其他人正在寻找这个。
      【解决方案6】:

      Jet Profiler 如果是付费版本就很好。 LogMonitor 只是将它指向 mysql 日志文件。

      【讨论】:

        【解决方案7】:

        不确定图形用户界面,但有一个命令帮助我使用工作台在 MySQL 中对存储过程进行了很多分析:

        SET profiling = 1;
        call your_procedure;
        SHOW PROFILES;
        SET profiling = 0;
        

        【讨论】:

          【解决方案8】:

          如果版本 5.0.37 不可用,您可能需要查看 mytop。它只是输出服务器的当前状态,但允许您在特定查询上运行 EXPLAIN(由 mercutio 提到)。

          【讨论】:

            【解决方案9】:

            我不知道任何类似的分析应用程序,但使用 EXPLAIN 语法分析查询是司空见惯的。您可以使用这些来确定要创建的最佳索引,或者您可以尝试更改整体查询并查看它如何改变效率等。

            【讨论】:

              猜你喜欢
              • 2013-06-24
              • 2011-12-02
              • 1970-01-01
              • 2014-02-04
              • 1970-01-01
              • 1970-01-01
              • 2010-12-14
              • 2013-06-28
              • 1970-01-01
              相关资源
              最近更新 更多