我有一个在MySQL上运行的新的Joomla 3.0安装,我正在使用Workbench。我一直在遇到非常非常慢的查询。但是,它似乎很少,具体查询。像
这样的东西SELECT * FROM joom_users
运行非常非常慢并且经常失去连接。但是UPDATE和INSERT在这个表中运行得很好。我甚至导入了一个CSV文件,速度非常快。我已经跑了
EXPLAIN SELECT * FROM joom_users
桌子上没有任何明显的错误。所有索引都在那里,表本身很小(只有大约300行)。我认为通配符可能会将其丢弃,所以我已经用字段替换了通配符,我尝试从其他表中查询2个字段(在某些情况下,没有行),并且ALSO运行缓慢。
此外,对ALTER表的请求也运行缓慢。最后,我还尝试使用Workbench(一个Win7,另一个OSX)的多台机器,它们都运行缓慢,因此我已经消除了可能导致此问题的任何本地问题。
我为此感到困惑。救命啊!
答案 0 :(得分:0)
您提供的示例查询没有任何隐含的错误。没有它可以使用的索引,但除非它是一个非常宽的表,我希望它非常快。
在共享服务器环境中,您不知道托管了多少其他数据库或者它们的使用程度。如果您可以迁移到本地数据库,您将能够看到性能是否有所提高。
如果您的安装有300个活动用户,则可能存在大量锁争用,尤其是在使用全表锁的MyISAM上。例如,看起来Joomla用户表有一个lastVisitDate
,如果在登录用户的每个页面加载时更新它,肯定会导致锁定问题。