我有一个mysql数据库,目前运行速度非常慢。服务器上有许多数据库,所有其他数据库都运行得很好,但是这个数据库非常慢,非常简单的更新(更新小表中的1行)或选择查询(从小表中选择1行)通常需要2-10秒。
我的问题是,是否有人能想出一个原因,为什么这个数据库运行得如此慢。流量很小(它是开发站点的数据库)。我已经排除了我的脚本,因为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表?
发布于 2012-04-20 01:52:42
看起来这个问题与数据库设置和InnoDB表有关。当数据库使用MyISAM时,它工作得很好,所以我们对此进行了调查,发现默认的缓冲池大小太小,导致了内存问题。在提高了默认缓冲池大小的值之后,数据库的执行速度要快得多,(速度可能快1000倍左右)。
https://stackoverflow.com/questions/10212429
复制相似问题