|
|
1
2
我最近才注意到,MyTop将以次秒的间隔进行投票,这可能会很有启发性。 对我来说,这听起来就像是Myisam引擎表上的表锁定。不过,您没有提到您的表运行的是什么引擎。您的插入/更新/选择比率是多少?如果您的更新率很高,那么使用mysqls查询缓存可能没有什么改进。 对于更昂贵的查询,解释能告诉您什么?您可能需要调整索引的设计方式,或者重新排序查询中的WHERE子句。如果explain为您提供了一个完整的表扫描或非常高的行数,那么您可能没有尽可能地使用索引。 你能详细解释一下你的非唯一索引ID吗?显示创建表可能会有所帮助。 编辑 如果您减少了缓冲区的大小并看到了改进,这就告诉我,在您的情况下分配内存所需的时间可能非常重要。如果查询性能低于1秒,我将开始检查系统性能,特别是内存。我建议从top开始,按内存排序,并显示交换空间和页面错误数。或者运行vmstat,注意交换活动。如果您看到高等待时间,您可能正在等待磁盘吞吐量。(切换到InnoDB而不改变性能是很有趣的。如果内存不足,我认为内存不足的情况会更快地暴露出来。) 这是一个Web应用程序吗?如果是,连接/线程的数量、httpd连接和查询延迟之间是否存在相关性?我见过php-baloon-apache处理从35MB到512MB及更大的内存,然后这台机器将被磨成swap-land。 也有可能是硬件问题。总是值得花时间检查dmesg,看看是否有内存或磁盘问题的内核报告。系统上还运行其他程序吗?您是否有任何cron作业可能在竞争磁盘或内存? |