1

我们的服务器数据库在 mysql 5.1 中,我们的数据库中有 754 个表。我们为每个项目创建一个表。因此,大量的桌子。从过去的一周开始,我注意到插入和更新任何表的时间都很长。如果我创建一个新表并插入其中,插入大约 300 个记录需要一分钟。

因为我们在同一台服务器中的测试数据库有 597 个表,所以在测试数据库中相同的插入非常快。

默认引擎是 MISAM。但是我们在 INNODB 中的表很少。

有几个触发器在运行。在我删除触发器后,它变得更快了。但这还不够快。

4

3 回答 3

1

使用DESCRIBE了解您的查询执行计划。

查看更多http://dev.mysql.com/doc/refman/5.1/en/explain.html以了解其用法。

于 2013-05-10T06:17:48.267 回答
0

正如@swapnesh 提到的, DESCRIBE 命令对于性能调试非常有用。您还可以使用以下方法检查安装是否存在问题:

你像这样使用它:

wget https://raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl
chmod +x mysqltuner.pl
./mysqltuner.pl

当然,这里我假设您运行某种基于 Unix 的系统。

您可以使用OPTIMIZE。根据手册,它执行以下操作:

重组表数据和关联索引数据的物理存储,减少存储空间,提高访问表时的I/O效率。对每个表所做的确切更改取决于该表使用的存储引擎

语法是:

OPTIMIZE TABLE tablename
于 2013-05-10T06:26:19.613 回答
0

批量制作而不是一个一个制作时,插入通常更快。尝试在每个语句中插入 10、30 或 100 条记录。

如果您使用 jdbc,您可能能够通过批处理实现相同的效果,而无需更改 SQL。

于 2013-05-10T08:04:49.573 回答