MySQL查询运行速度很慢 - 但只有部分运行

时间:2013-08-14 21:50:58

标签: mysql

我有一个在MySQL上运行的新的Joomla 3.0安装,我正在使用Workbench。我一直在遇到非常非常慢的查询。但是,它似乎很少,具体查询。像

这样的东西
SELECT * FROM joom_users

运行非常非常慢并且经常失去连接。但是UPDATE和INSERT在这个表中运行得很好。我甚至导入了一个CSV文件,速度非常快。我已经跑了

EXPLAIN SELECT * FROM joom_users

桌子上没有任何明显的错误。所有索引都在那里,表本身很小(只有大约300行)。我认为通配符可能会将其丢弃,所以我已经用字段替换了通配符,我尝试从其他表中查询2个字段(在某些情况下,没有行),并且ALSO运行缓慢。

此外,对ALTER表的请求也运行缓慢。最后,我还尝试使用Workbench(一个Win7,另一个OSX)的多台机器,它们都运行缓慢,因此我已经消除了可能导致此问题的任何本地问题。

我为此感到困惑。救命啊!

1 个答案:

答案 0 :(得分:0)

您提供的示例查询没有任何隐含的错误。没有它可以使用的索引,但除非它是一个非常宽的表,我希望它非常快。

在共享服务器环境中,您不知道托管了多少其他数据库或者它们的使用程度。如果您可以迁移到本地数据库,您将能够看到性能是否有所提高。

如果您的安装有300个活动用户,则可能存在大量锁争用,尤其是在使用全表锁的MyISAM上。例如,看起来Joomla用户表有一个lastVisitDate,如果在登录用户的每个页面加载时更新它,肯定会导致锁定问题。