您好我使用的是Mysql 5.0.x
我刚刚将很多表从MyISAM更改为InnoDB
使用MyISAM表大约花了 1分钟来安装我们的数据库 使用InnoDB安装相同的数据库需要 15分钟
为什么InnoDB需要这么长时间?
我可以做些什么来加快速度?
数据库安装执行以下步骤
1)删除架构
2)创建架构
3)创建表格
4)创建存储过程
5)插入默认数据
6)通过存储过程
插入数据编辑:
大多数情况下,插入默认数据
答案 0 :(得分:5)
修改“插入数据”步骤以在开始时启动事务并在结束时提交事务。你会得到改进,我保证。 (如果您有大量数据,则可能希望将事务分解为每个表。)
如果您的应用程序根本不使用事务,那么您应该将参数innodb_flush_log_at_trx_commit
设置为2.这将为您提供大量性能,因为您几乎肯定会启用auto_commit,这会产生更多比InnoDB的默认参数配置的事务。此设置可以在每次提交时不必要地刷新磁盘缓冲区。
答案 1 :(得分:3)
我不确定,但我认为解释的一部分是参考完整性不是免费的。 InnoDB必须做更多的工作来保证它,所以当然会花费更多的时间。
在创建表之后,可能需要更改脚本以添加约束。
答案 2 :(得分:0)
就像duffymo所说,在插入数据之前禁用你的约束(索引和foreing / primary key)。
如果使用了很多 select 语句,可能应该在通过存储过程插入数据之前恢复一些索引