mysql - 如何像 MyISAM 一样快速地将数据导入 InnoDB 表

标签 mysql innodb myisam

我是 MySQL 的新手,对它知之甚少。

我遇到的问题如下:

以前,我的数据以 MyISAM 作为 MySQL 引擎,过去需要大约 15 分钟才能在任何机器上导入。但是,当我将引擎更改为 InnoDB 时,在任何机器上导入都需要将近 90 分钟。请向我提出同样的建议。

最佳答案

Innodb 表的并发插入速度更快。参见 Innodb Performance Optimization Basics

为了获得最佳性能,您需要在 my.cnf 文件中调整 INNODB 引擎。

假设,如果您有 4G​​B RAM,则尝试将 my.cnf 文件配置为:

#Innodb
innodb_buffer_pool_size = 1G
innodb_additional_mem_pool_size = 512M
innodb_log_file_size = 1G
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 30
innodb_file_per_table=1
innodb_file_format=barracuda
innodb_strict_mode=1
innodb_autoinc_lock_mode = 0

然后重启MySQL服务器。

关于mysql - 如何像 MyISAM 一样快速地将数据导入 InnoDB 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12363066/

相关文章:

mysql - 通过 linux 命令行创建 mysql 用户?

mysql - 从 db 获取简单信息到 node.js http 服务器响应

mysql - innodb 中的列锁定?

MySql生成文件在/var/lib/mysql

mysql - 更新至 InnoDb - MySQL 不稳定

Mysql gem 和 Rails3

php - 为什么 CakePHP 会复制我的查询? (这与通常被问到的 "too many queries"问题不同)

mysql - SQL语言的目的是什么?

php - 锁定在 MyISAM 表 (MySQL) 和 PHP

mysql max_user_connections 和 innodb 与 myisam