3

自从我导入了一个相当大的数据库以来,MySQL 似乎运行得非常缓慢,有时我的本地站点只是坐在那里加载和加载,并且永远不会显示错误。在 chrome 的状态栏中,它只是说“发送请求...”我所有的仅 HTML 站点都会立即加载,但是任何必须访问数据库的内容都不会加载。这个问题似乎是随机发生的。我可以在我的本地站点上工作大约 30 分钟,然后 MySQL 突然决定对付我。我认为这是一个内存问题,但老实说,我不知道是什么原因造成的。有人有什么想法可以尝试吗?

4

2 回答 2

2

首先,尝试安装一些工具来监控您的一般内存和 CPU 使用情况:

  • OS X 包含一个名为Activity Monitor的实用程序,它是 unixtop命令的更直观版本,并包含一些简单的历史图表。如果您在计算机运行缓慢时查看活动监视器,您可以单击列标题对其进行排序(按“CPU %”或“Real mem”降序排序可能会识别出活动的罪魁祸首)。

  • 还有一些更微妙的监控工具,例如Menu Meters,其中包括一组有用的 Menubar Extras。菜单栏附加功能实时更新,因此您可以配置感兴趣的信息,并且在资源不足时也可以为您提供一些提示。

如果您有周期性的减速,这也可能是您的计算机正在为虚拟内存分配/删除交换文件..或将活动内存交换到磁盘时。上述任何一个实用程序都应该给你一些关于交换分配/使用的提示,以及该分配是否正在快速变化。

然后,看看一些 MySQL 特定的用法:

  • 在 MySQL 中启用慢查询日志;它将帮助您找到不是最佳的查询

  • 当速度变慢时,尝试使用mysqlshell 查看当前正在运行的查询:

     show processlist
    
  • 您还可以安装一个控制台实用程序实用mytop程序,它可以方便地监视 MySQL 进程列表(它会自动刷新,就像 unix 一样top)。我相信您也可以使用MySQL Workbench从更闪亮的 GUI 进行类似的管理监控,但我最近没有使用过。

希望以上内容能给您一些想法,以帮助您找出一般问题。一旦您可以找出发生减速的原因(资源不足、缺少索引、错误查询等),您就可以采取适当的步骤进行纠正。

O'Reilly 高性能 MySQL书也是一本内容丰富的读物 :) 。

于 2012-07-28T13:51:30.200 回答
0

可能会出现很多问题:

  1. 你有锁(在应用程序验证这一点很慢时,在控制台中运行“show innodb status \G”)。
  2. 您可能会内存不足,并且您的机器可能正在交换(如果 unix 使用 top 或 sar 进行验证)。
  3. 您可能有需要很长时间才能执行的索引/查询,要验证这一点,您可以检查慢查询日志: http ://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html

这些只是可能影响性能的一小部分,但可能是最常见的一些。如果这没有帮助,您需要为您的问题添加更多详细信息。

于 2012-07-16T13:58:03.183 回答