如何在mysql中优化此数据集的导入?

时间:2010-04-26 21:07:23

标签: mysql optimization import create-table

我有以下表架构:

CREATE TABLE `alexa` (
  `id` int(10) unsigned NOT NULL,
  `rank` int(10) unsigned NOT NULL,
  `domain` varchar(63) NOT NULL,
  `domainStatus` varchar(6) DEFAULT NULL,
  PRIMARY KEY (`rank`),
  KEY `domain` (`domain`),
  KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

导入数据需要几分钟时间。对我而言似乎相当慢,因为我们只讨论了一百万行数据。

如何优化此数据的插入? (已使用禁用键)

2 个答案:

答案 0 :(得分:0)

使用LOAD DATA INFILE或等效的命令行工具mysqlimport。这比任何其他方法快20倍。

您还可以在MySQL手册中阅读Speed of INSERT Statements。这有很多提高批量插入性能的技巧。

你没有多说你当前如何插入数据(除了禁用键),因此很难推荐更具体的方法来改进它。例如,您使用的编码语言是什么?你在使用准备好的查询吗?

答案 1 :(得分:0)

如果您不使用复制,请确保 bin log 已关闭:

set sql_log_bin=off;