我有一个目前运行速度很慢的mysql数据库。服务器上有许多数据库,所有其他数据库运行正常,但是这个数据库非常慢,通常需要2-10秒才能进行非常简单的更新(更新小表中的1行)或选择查询(从小表中选择1行)。
我的问题是询问是否有人能想到这个数据库运行速度如此之慢的原因。流量最小(它是开发站点的数据库)。我已经排除了我的脚本,因为phpMyAdmin也非常慢并且经常超时使用这个数据库。我还检查了正在运行的进程以检查是否存在任何不适当的情况,并且可能没有正在进行的进程,但数据库运行速度仍然很慢。
所以,任何人都可以了解这里可能发生的事情。如果您需要,我很乐意提供额外的信息。
编辑:
除了评论之外,这是一个慢速运行查询的示例:
UPDATE `Users` SET `last active` = 1334763602 WHERE `ID` = 1
这个简单的更新查询需要2到10秒才能完成。 ID是主键,此表有大约30条记录。
除了我最初的问题之外,似乎SELECT似乎并没有那么糟糕,虽然我看到SELECT的周期很慢,但很多SELECT语句当前运行得很快,而UPDATE仍然很慢。
编辑2:
经过更多调查后,它似乎可能与InnoDB表类型绑定。我已将表更改为MyISAM,在InnoDB中花费1.5秒的查询在MyISAM中只需0.0006秒。我想我的问题是如何最好地调整到InnoDB表?
答案 0 :(得分:0)
看起来问题与数据库设置和InnoDB表有关。当数据库使用MyISAM时它运行正常,所以我们对此进行了调查,结果发现默认缓冲池大小太小,导致内存问题。在提升默认缓冲池大小的值后,数据库的执行速度要快得多(如果不是更多,可能会快1000倍)。