我们的服务器数据库在mysql 5.1 我们有db4中的754个表。我们为每个项目创建一个表。因此,大量的表格。 从过去的一周我已经注意到插入和更新任何表格的延迟很长。如果我创建一个新表格并插入它,它需要一分钟插入大约300个recs。Mysql插入,更新非常慢
我们在同一台服务器上的测试数据库有597个表在测试数据库中,相同插入速度非常快。
默认引擎是MYISAM。但是我们在INNODB中没有几张桌子。
有几个触发器正在运行。在我删除触发器后,它变得更快一些。但速度不够快。
我们的服务器数据库在mysql 5.1 我们有db4中的754个表。我们为每个项目创建一个表。因此,大量的表格。 从过去的一周我已经注意到插入和更新任何表格的延迟很长。如果我创建一个新表格并插入它,它需要一分钟插入大约300个recs。Mysql插入,更新非常慢
我们在同一台服务器上的测试数据库有597个表在测试数据库中,相同插入速度非常快。
默认引擎是MYISAM。但是我们在INNODB中没有几张桌子。
有几个触发器正在运行。在我删除触发器后,它变得更快一些。但速度不够快。
USE DESCRIBE了解您的查询执行计划。
查看更多http://dev.mysql.com/doc/refman/5.1/en/explain.html的使用方法。
正如@ 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
插入通常更快。尝试在每条语句中插入10,30或100条记录。
如果您使用jdbc,您可能可以通过批处理实现相同的效果,而无需更改SQL。
更好的意思是作为一个评论... – hd1 2013-05-10 06:18:30
@ hd1甚至可以分类在过分广泛..不是一个真正的问题..大声笑 – swapnesh 2013-05-10 06:21:12