我们的服务器数据库在mysql 5.1中 我们的db中有754个表。我们为每个项目创建一个表。因此,没有大表。 从过去的一周开始,我注意到对任何表的插入和更新都有很长的延迟。如果我创建一个新表并插入其中,则需要一分钟来插入大约300个rec。
同一服务器中的测试数据库有597个表在同一个插入在测试数据库中非常快。
默认引擎是MYISAM。但我们在INNODB中几乎没有表格。
有几个触发器正在运行。删除触发器后,它变得更快。但它还不够快。
答案 0 :(得分:1)
USE DESCRIBE了解您的查询执行计划。
答案 1 :(得分: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
答案 2 :(得分:0)
批量生产时,插入物通常更快,而不是一个接一个。尝试在每个语句中插入10,30或100条记录。
如果使用jdbc,您可以在不更改SQL的情况下实现与批处理相同的效果。