从的MyISAM InnoDB的变更表,使系统慢
题
您好我使用MySQL 5.0.x的
我刚改变了很多的表从MyISAM的InnoDB的
通过花了大约1分钟即可安装我们的数据库中的MyISAM表 与InnoDB的大约需要的15分钟以安装相同的数据库
<强>为什么InnoDB的需要很长时间吗
我能做些什么,以加快速度?
在数据库中安装执行以下步骤
1)滴眼液的模式
2)创建的模式
3)创建表
4)创建存储过程
5)将默认数据
6)通过存储过程中插入数据
编辑:
默认数据的插入需要的时间最
解决方案
修改插入数据步骤在开始启动一个事务并在结束提交它。你会得到改善,我保证。 (如果你有大量的数据,您可能希望以每桌突破交易最多。)
如果您的应用程序不使用事务的话,那么你应该设置paramater innodb_flush_log_at_trx_commit
为2。这会给你很多的性能回来,因为你几乎可以肯定AUTO_COMMIT启用,这产生比InnoDB的默认了更多的交易参数被配置为。此设置停止它不必要地冲洗所述磁盘缓冲区上的每个提交。
其他提示
15分钟似乎并不过度我。毕竟,这是一个一次性费用。
我不能肯定,但我想解释的那部分是参照完整性不是免费的。 InnoDB的有做更多的工作,以保证它,所以它当然会占用更多的时间。
也许你的脚本需要改变创建表后添加的约束。
像duffymo说,在插入数据之前禁用约束(索引和foreing /主键)。
也许你应该通过存储过程插入数据之前恢复一些指标,如果它使用了很多的选择的语句
不隶属于 StackOverflow