嗨,我用的是Mysql 5.0.x
我刚把很多表从MyISAM改成了InnoDB
使用MyISAM表,需要大约1分钟的()来用InnoDB安装我们的数据库,安装相同的数据库需要15分钟的。
为什么InnoDB花了这么长时间?
,我能做些什么来加快速度?
数据库安装执行以下步骤
1)删除模式
2)创建架构
3)创建表
4)创建存储过程
5)插入默认数据
6)通过存储过程插入数据
编辑:
默认数据的插入占用了大部分时间。
发布于 2009-04-29 23:29:49
修改Insert数据步骤,以便在开始时启动事务,并在结束时提交事务。我保证你会有进步的。(如果您有大量数据,您可能希望将事务分解到每个表。)
如果您的应用程序根本不使用事务,那么您应该将参数innodb_flush_log_at_trx_commit设置为2,这将给您很大的性能恢复,因为您几乎肯定会启用auto_commit,并且这会生成比InnoDB的默认参数配置的事务多得多的事务。此设置停止不必要地在每次提交时刷新磁盘缓冲区。
发布于 2009-01-19 11:22:38
15分钟对我来说并不过分。毕竟,这是一次性的费用。
我不确定,但我可以想象,部分的解释是引用的完整性是不自由的。InnoDB必须做更多的工作来保证它,所以它当然会占用更多的时间。
也许您的脚本需要在创建表之后进行修改以添加约束。
发布于 2009-01-19 12:27:05
正如duffymo所说,在插入数据之前,禁用约束(索引和foreing/主键)。
也许您应该在通过存储过程插入数据之前恢复一些索引,如果它使用了大量的select语句
https://stackoverflow.com/questions/457060
复制相似问题