首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将表从MyISAM更改为InnoDB会使系统变慢

问将表从MyISAM更改为InnoDB会使系统变慢
EN

Stack Overflow用户
提问于 2009-01-19 09:51:17
回答 3查看 4.4K关注 0票数 1

嗨,我用的是Mysql 5.0.x

我刚把很多表从MyISAM改成了InnoDB

使用MyISAM表,需要大约1分钟的()来用InnoDB安装我们的数据库,安装相同的数据库需要15分钟的。

为什么InnoDB花了这么长时间?

,我能做些什么来加快速度?

数据库安装执行以下步骤

1)删除模式

2)创建架构

3)创建表

4)创建存储过程

5)插入默认数据

6)通过存储过程插入数据

编辑:

默认数据的插入占用了大部分时间。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-04-29 23:29:49

修改Insert数据步骤,以便在开始时启动事务,并在结束时提交事务。我保证你会有进步的。(如果您有大量数据,您可能希望将事务分解到每个表。)

如果您的应用程序根本不使用事务,那么您应该将参数innodb_flush_log_at_trx_commit设置为2,这将给您很大的性能恢复,因为您几乎肯定会启用auto_commit,并且这会生成比InnoDB的默认参数配置的事务多得多的事务。此设置停止不必要地在每次提交时刷新磁盘缓冲区。

票数 5
EN

Stack Overflow用户

发布于 2009-01-19 11:22:38

15分钟对我来说并不过分。毕竟,这是一次性的费用。

我不确定,但我可以想象,部分的解释是引用的完整性是不自由的。InnoDB必须做更多的工作来保证它,所以它当然会占用更多的时间。

也许您的脚本需要在创建表之后进行修改以添加约束。

票数 3
EN

Stack Overflow用户

发布于 2009-01-19 12:27:05

正如duffymo所说,在插入数据之前,禁用约束(索引和foreing/主键)。

也许您应该在通过存储过程插入数据之前恢复一些索引,如果它使用了大量的select语句

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/457060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档