2013-05-10 101 views
1

我们的服务器数据库在mysql 5.1 我们有db4中的754个表。我们为每个项目创建一个表。因此,大量的表格。 从过去的一周我已经注意到插入和更新任何表格的延迟很长。如果我创建一个新表格并插入它,它需要一分钟插入大约300个recs。Mysql插入,更新非常慢

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

默认引擎是MYISAM。但是我们在INNODB中没有几张桌子。

有几个触发器正在运行。在我删除触发器后,它变得更快一些。但速度不够快。

回答

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 
0

插入通常更快。尝试在每条语句中插入10,30或100条记录。

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